#include<bits/stdc++.h>
using namespace std;
const double PI=acos(-1.0);
#define _max -0x7fffffff
int _map[14][14];
int col[14];
int zhu[30];
int fu[30];
int ans=0;
void Nqueue(int level,int n)
{
if(level==n+1)
{
ans++;
return;
}
for(int i=1;i<=n;i++)
{
if(_map[level][i]==0&&col[i]==0&&zhu[i-level+n]==0&&fu[level+i]==0)
{
_map[level][i]=1;
col[i]=1;
zhu[i-level+n]=1;
fu[level+i]=1;
Nqueue(level+1,n);
_map[level][i]=0;
col[i]=0;
zhu[i-level+n]=0;
fu[level+i]=0;
}
}
}
int main()
{
int n;
scanf("%d",&n); //3<=n<=13
memset(_map,0,sizeof(_map));
memset(col,0,sizeof(col));
memset(zhu,0,sizeof(zhu));
memset(fu,0,sizeof(fu));
ans=0;
Nqueue(1,n);
printf("%d\n",ans);
return 0;
}
PIPIOJ1138: N皇后问题(八皇后问题)
最新推荐文章于 2022-06-04 20:17:29 发布