南邮 OJ 1319 n皇后问题

n皇后问题

时间限制(普通/Java) :  1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 140            测试通过 : 32 

比赛描述

 

n×格的棋盘上放置彼此不受攻击的个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在n×n格的棋盘上放置n个皇后,任何个皇后不放在同一行或同一列或同一斜线上。设计一个解后问题的队列式分支限界法,计算在n´ n个方格上放置彼此不受攻击的n个皇后的一个放置方案。



输入

 

第一行有1 个正整数n。

输出

 

将计算出的彼此不受攻击的n个皇后的一个放置方案输出。第1行是n个皇后的放置方案。

样例输入

5

样例输出

1 3 5 2 4

提示

 

题目来源

算法设计与实验题解



#include
#define N 100
bool map[N][N];
bool find;
int n;

bool canPlace(int p, int q){
	int i,j;
	for(i=0; i=0 && j>=0; i--,j--){	//左上
		if(map[i][j]){
			return 0;
		}
	}
	for(i=p,j=q; i=0; i++,j--){		//右上
		if(map[i][j]){
			return 0;
		}
	}
	for(i=p,j=q; i=0 && j







你可能感兴趣的:(南邮,OJ)