lalalala


私信TA

用户名:zhangshuo

访问量:153348

签 名:

像狗一样的学习,像绅士一样地玩耍。

等  级
排  名 6
经  验 30307
参赛次数 10
文章发表 201
年  龄 12
在职情况 学生
学  校 芜湖市第十一中学
专  业

  自我简介:

今日懒惰流下的口水,将会成为明日里伤心的泪水。

解题思路:





注意事项:





参考代码:

#include<stdio.h>  
#include<stdlib.h>  
int count, N, k, vis[11];  
long a[11];  
void dfs(int n, int num)//传的是已经选入桌上的人的个数和前一个入座的人的编号;  
{  
    int i, j;  
    if(n == N)  
    {  
        if(abs(a[1] - a[num]) <= k)//因为是圆桌所以最后一个要和第一个再比一次;  
        {  
            count++;  
        }  
        return;  
    }  
    else  
    {  
        for(i = 1; i <= N; i++)  
        {  
            if(!vis[i] && abs(a[num] - a[i]) <= k)  
            {  
                vis[i] = 1;  
                dfs(n + 1, i);  
                vis[i] = 0;  
            }  
        }  
    }  
}  
   
int main()  
{  
    int i;  
    scanf("%d%d", &N, &k);  
    for(i = 1; i <= N; i++)  
    {  
        scanf("%d", &a[i]);  
    }  
    vis[1] = 1;  
    dfs(1, 1);//固定让第一个人最在第一个;  
    printf("%d\n", count);  
    return 0;  
}


 

0.0分

8 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区