#include <cstdio>
#include <iostream>
using namespace std;
int a[100];
int ans = 0, N = 8;
bool b[100], c[100], d[100];//横竖向,左对角线,右对角线
void dfs(int x)
{
if(x > N)
{
ans ++;
return ;
}
for(int i=1; i<=N; i++)
{
if(!(b[i] || c[x+i] || d[x-i+N]))
{
b[i] = c[x+i] = d[x-i+N] = true;
a[x] = i;
dfs(x+1);
b[i] = c[x+i] = d[x-i+N] = false;
}
}
}
int main()
{
dfs(1);
cout << ans << endl;
return 0;
}
04-29
12-20
05-25
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交