文章

1

粉丝

133

获赞

0

访问

5.3k

头像
暴力打表(
推荐阅读
P1265 北京大学/北京航空航天大学机试题
发布于2022年3月27日 16:10
阅读数 5.3k

本题可采用打表的方式通过。(我是蒟蒻.jpg)

首先,输出所有八皇后问题的解。考虑到后续需要字典序,这里直接从0开始遍历。

#include<cstdio>
using namespace std;
int ans[8]={0};
int q=0;
void panduan(int qizi[8])
{
	int qipan[8][8]={0};
	for(int ii=0;ii<7;ii++)
	{
		// hang: qizi[ii] lie: ii
		int lie=qizi[ii]; int hang=ii;
//		printf("hang=%d lie=%d\n",hang,lie);
		for(int i=0;i<=7;i++)
		{
			qipan[i][lie]=1; // hang=1
		}
		for(int i=0;i<=7;i++)
		{
			qipan[hang][i]=1; // lie=1
		}
		int temp_lie1=lie;
		for(int i=hang;i>=0;i--)
		{
			qipan[i][temp_lie1--]=3; //zuoshang=1
			if(temp_lie1<0) break;
		}
		int temp_lie2=lie;
		for(int i=hang;i>=0;i--)
		{
			qipan[i][temp_lie2++]=4; //youshang=1
			if(temp_lie2>7) break;
		}
		int temp_lie3=lie;
		for(int i=hang;i<=7;i++)
		{
			qipan[i][temp_lie3--]=5; //zuoxia=1
			if(temp_lie3<0) break;
		}
		int temp_lie4=lie;
		for(int i=hang;i<=7;i++)
		{
			qipan[i][temp_lie4++]=6; //youxia=1
			if(temp_lie4>7) br...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发