比赛 皇后 评测结果 AWWWWWWWWT
题目名称 N皇后问题 最终得分 10
用户昵称 Hyoi_deque 运行时间 1.719 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2017-03-19 20:50:44
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<iomanip>
using namespace std;
bool d[100]={0},b[100]={0},c[100]={0};
int sum=0,n,a[100];
int search(int);
int print();
int main()
{
	freopen("queen.in","r",stdin); 
    freopen("queen.out","w",stdout);
	search(1);
}
int search(int i)
{
	int j;
	cin>>n;
	for (j=1;j<=n;j++)
	 if((!b[j])&&(!c[i+j])&&(!d[i+j+n-1]))
	 {
	 	a[i]=j;
	 	b[j]=1;
	 	c[i+j]=1;
	 	d[i-j+n-1]=1;
	 	if (i==n)print();
	 	 else search(i+1);
	 	b[j]=0;
	 	c[i+j]=0;
	 	d[i-j+n-1]=0;
	 }
	 
}
int print()
{
	int i;
	sum++;
	cout<<sum<<endl;
	for(i=1;i<=n;i++)
	 //cout<<setw(4)<<a[i];
	 cout<<endl;
	 
}