解题思路:
bcd数组分别代表:
注意事项:
参考代码:
#include <bits/stdc++.h>
using namespace std;
int a[11],n;
bool b[11],c[11],d[11];
void dfs(int m)
{
if(m==n+1)
{
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
cout<<endl;
exit(0);
}
for (int i=1;i<=n;i++)
if(!b[i]&&!c[i+m-1]&&!d[n-i+m])
{
a[m]=i;
b[i]=true;
c[i+m-1]=true;
d[n-i+m]=true;
dfs(m+1);
b[i]=false;
c[i+m-1]=false;
d[n-i+m]=false;
}
}
int main()
{
cin>>n;
dfs(1);
}
0.0分
3 人评分
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:887 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:598 |
【蟠桃记】 (C++代码)(递归计算)浏览:948 |
母牛的故事 (C语言代码)浏览:1289 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:578 |
分糖果 (C++代码)浏览:1429 |
这可能是一个假的冒泡法浏览:983 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:1419 |
校门外的树 (C语言代码)浏览:955 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:532 |