AcWing 843. n-皇后问题
原题链接
中等
作者:
寻路
,
2021-03-04 16:30:01
,
所有人可见
,
阅读 387
DFS
#include<stdio.h>
int position[10];
int t;
void DFS(int n)
{
if(n==t+1)
{
for(int i=1;i<=t;i++)
{
for (int j = 1; j <= t; j++)
{
if (j == position[i])
printf("Q");
else
printf(".");
}
printf("\n");
}
printf("\n");
}
else
{
for(int i=1;i<=t;i++)
{
position[n]=i;
int flag=1;
for(int j=1;j<n;j++)
{
if(position[j]==position[n]||position[j]+j==position[n]+n||position[j]-j==position[n]-n)
{
flag=0;
break;
}
}
if(flag) DFS(n+1);
}
}
}
int main()
{
scanf("%d",&t);
DFS(1);
return 0;
}