0
点赞
收藏
分享

微信扫一扫

1213:八皇后问题 AC 蒋长灵 (2022.02.01)

狐沐说 2022-02-01 阅读 18

http://ybt.ssoier.cn:8088/problem_show.php?pid=1213

/*
1213:八皇后问题 AC 改 蒋长灵(2022.02.01)
http://ybt.ssoier.cn:8088/problem_show.php?pid=1213
*/
#include<bits/stdc++.h>
using namespace std;
int z[20],y[20],l[10],bj[10][10],sum=1;
void print()
{
	cout<<"No. "<<sum<<endl;
	for(int i=1;i<=8;i++)
	{
		for(int j=1;j<=8;j++)
		{
			cout<<bj[j][i]<<" ";//不是bj[i][j];毕竟我们是这么推的(先列) 
		}
		cout<<endl;
	}
	sum++;
}
void f(int k)
{
//	if(k==9)
//	{
//		print();
//	}
	for(int i=1;i<=8;i++)
	{
		if(l[i]==0&&/*z[abs(i-k+7]==0*/z[i-k+7]==0&&y[i+k]==0)
		{
			bj[k][i]=1;
			l[i]=1;
			z[i-k+7]=1; 
			y[i+k]=1;
			if(k==8)
			{
				print();
			}
			else
			{
				f(k+1);
			}
			l[i]=0;
			z[i-k+7]=0;
			y[i+k]=0;
			bj[k][i]=0;
		}
	}
}
int main()
{
	f(1);
	return 0;
}

举报

相关推荐

0 条评论