1、题目:在N*N的棋盘里,放入N个皇后,使得皇后互不攻击,有多少种方法?(原题:8皇后)
2、样例:【输入】8【输出】92。
3、代码:
#include<iostream>
using namespace std;
int lie[12],xie1[100],xie2[100],n,ret;
void dfs(int row){
if(row==n+1){
ret++;
return;
}
for(int col=1;col<=n;col++){
if(lie[col]==0&&xie1[row+col]==0&&xie2[row-col+10]==0){
lie[col]=1;
xie1[row+col]=1;
xie2[row-col+10]=1;
dfs(row+1);
lie[col]=0;
xie1[row+col]=0;
xie2[row-col+10]=0;
}
}
}
int main(){
cin>>n;
dfs(1);
cout<<ret;
return 0;
}