站外题目求助 八皇后
  • 板块学术版
  • 楼主Rainsleep
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/9/10 22:27
  • 上次更新2023/10/27 12:04:21
查看原帖
站外题目求助 八皇后
666796
Rainsleep楼主2022/9/10 22:27

已经改了一百遍的0pts code:

#include<bits/stdc++.h>

using namespace std;

const int N = 110;

int n,res;

bool row[N],col[N],l[N],r[N],mp[N][N];

inline void dfs(int cur)
{
	if(cur == n + 1)
	{
		++ res;
		printf("No.%d\n",res);
		
		for(int i(1);i <= n; ++ i)
		{
			for(int j(1);j <= n; ++ j)
				printf("%d ",mp[i][j]);
			putchar('\n');
		}
		
		return ;
	}
	
	for(int j(1);j <= n; ++ j)
	{
		if(!col[j] and !l[cur + j] and !r[cur - j + n])
		{
			col[j] = l[cur + j] = r[cur - j + n] = mp[cur][j] = true;
			
			dfs(cur + 1);
			
			col[j] = l[cur + j] = r[cur - j + n] = mp[cur][j] = false;
		}
	}
	
	return ;
}

int main()
{
	n = 8; 

	dfs(1);
	
	printf("%d",res);
	
	return 0;
}

请教大家,实在改不出来了.. qwq

2022/9/10 22:27
加载中...