首页 > 代码库 > hdoj 2553 N皇后问题 【DFS】

hdoj 2553 N皇后问题 【DFS】

题意:。。。

典型的深搜,就是处理对角线的时候有些意外。

代码(注释掉的就是深搜,因为我不打表的话 TL):

#include<stdio.h>
int c[11], n, ans;
int res[10] = {1, 0, 0, 2, 10, 4, 40, 92, 352, 724};
/*void dfs(int cur)
{
	if(cur == n) {
		++ans;
		return ;
	}
	int i, j, flag;
	for(i = 0; i < n; i ++){
		flag = 1;
		c[cur] = i;
		for(j = 0; j < cur; j ++){
			if(c[cur]==c[j]|| cur - c[cur]== j - c[j] || cur + c[cur]== j + c[j]){
				flag = 0;
				break;
			}
		}
		if(flag) dfs(cur+1);
	}
}*/
int main()
{
	while(scanf("%d", &n), n){
		//ans = 0;
		//dfs(0);
		printf("%d\n", res[n-1]);
	}
}
题目链接:点击打开链接