侯言志


私信TA

用户名:1433376288

访问量:378

签 名:

等  级
排  名 10309
经  验 1097
参赛次数 0
文章发表 2
年  龄 0
在职情况 学生
学  校 烟台大学
专  业

  自我简介:

TA的其他文章

解题思路:



注意事项:

参考代码:

#include <iostream>
#include <algorithm>

using namespace std;

int n, k;
int height[12];
bool tag[12];
int result = 0;
void dfs(int lay, int pre_height){
    if(lay == n){//lay是x,说明前x层已经找好了,而不是将要找第x层!!!
        if(abs(height[1] - pre_height) <= k){
            result++;
        }
        return ;
    }
    for(int i = 1;i<=n;i++){
        if(tag[i] == false && abs(height[i] - pre_height) <= k){
            tag[i] = true;
            dfs(lay + 1, height[i]);
            tag[i] = false;
        }
    }
    return;
}
int main(){

    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>height[i];
    }
    tag[1] = true;
    dfs(1, height[1]);
    cout<<result;

    return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »