AcWing 843. 我尽力之后的n-皇后问题题解
原题链接
中等
作者:
wangyj
,
2020-10-17 14:49:58
,
所有人可见
,
阅读 600
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int n,i,j;
char g[20][20];
bool col[20],dg[20],udg[20],row[20];
void DfS(int x,int y,int s)
{
if(y==n)y=0,x++;
if(x==n){
if(s==n){
for(i=0;i<n;i++)puts(g[i]);
printf("\n");
}
return;
}
DFS(x,y+1,s);
if(!row[x]&&!col[y]&&!dg[x+y]&&!udg[x-y+n]){
g[x][y]='Q',row[x]=col[y]=dg[x+y]=udg[x-y+n]=true;
DFS(x,y+1,s+1);
row[x]=col[y]=dg[x+y]=udg[x-y+n]=false,g[x][y]='.';
}
}
int main()
{
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)g[i][j]='.';
DFS(0,0,0);
return 0;
}
相信你一定做的比我更好!加油加油💪