#include<stdio.h>
int c[100];
int count=0;
int tot=0,n;
int vis[3][100]={0};
void search(int cur)
{
if(cur==n)
{
tot++;
if(count<3)
{
for(int i=0;i<n-1;i++)
printf("%d ",c[i]+1);
printf("%d\n",c[n-1]+1);
count++;
}
}
else for(int i=0;i<n;i++)
{
if(!vis[0][i]&&!vis[1][cur+i]&&!vis[2][cur-i+n]){
c[cur]=i;
vis[0][i]=vis[1][cur+i]=vis[2][cur-i+n]=1;
search(cur+1);
vis[0][i]=vis[1][cur+i]=vis[2][cur-i+n]=0;
}
}
}
int main()
{
scanf("%d",&n);
search(0);
printf("%d",tot);
return 0;
}
洛谷P1219八皇后
最新推荐文章于 2024-05-28 19:41:56 发布