八皇后问题,是19世纪著名的数学家高斯在1850年提出的:在8×8格的国际象棋盘上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列、同一斜线上,试问有多少种摆法?高斯先生给出的答案是“76”种,实际是76种吗? 八皇后问题是回溯算法的典型应用,但是本文提供递归的求法。 ...
分类:
其他好文 时间:
2014-12-16 22:19:48
阅读次数:
302
问题描述: 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋棋盘上放置八个皇后,使得任意两个皇后不能互相攻击,即任何行、列或对角线(与水平轴夹角为45°或135°的斜线)上不得有两个或两个以上的皇后。对于这个问题.....
分类:
其他好文 时间:
2014-12-16 18:43:27
阅读次数:
177
题目大意:N*N的棋盘上放N个皇后,N个皇后不能出现在同一行,同一列或是同一斜行。
思路:直接枚举判断太慢了,考虑到每行每列只有一个皇后,那么用一个数组C[x]表示第
x行放置的皇后所在的列编号,即x表示行,C[x]表示列。判断是否和前边所放皇后冲突可以
判断当前第cur行与之前的0~j行是否冲突。
C[cur] == C[j] || cur-C[cur] == j-C[j] || cur+C[cur] == j+C[j]分别判断是否在同一列,同一
主对角线,同一副对角线上。
但是还可以继续优化。直接用一个...
分类:
其他好文 时间:
2014-12-16 10:06:26
阅读次数:
149
题意:
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions....
分类:
其他好文 时间:
2014-12-15 00:14:20
阅读次数:
252
#include
using namespace std;
int vis[3][30];//分别表示列,主对角线和副对角线是否被占用,若用(row,col)表示第row行第col列位置(row,col)均从0开始
//则列所在位置为col,主对角线所在位置为n-row+col,副对角线所对应的位置为row+col
int ans ,MAXN;
void dfs(int row)
{
if (r...
分类:
其他好文 时间:
2014-12-11 12:29:34
阅读次数:
150
原文: 一步一步写算法(之八皇后) 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 八皇后是一道很具典型性的题目。它的基本要求是这样的:在一个8*8的矩阵上面放置8个物体,一个矩阵点只允许放置一个物体,任意两个点不能在一行上,也不能在一列上,不...
分类:
编程语言 时间:
2014-12-11 10:20:30
阅读次数:
227
The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other....
分类:
其他好文 时间:
2014-12-11 00:22:24
阅读次数:
174
《C和指针》第8章编程练习第8题: 1 /* 2 ** 八皇后问题 3 */ 4 5 #include 6 #define TRUE 1 7 #define FALSE 0 8 9 /* 10 ** 棋盘,8*8的二维矩阵,为全局变量 11 ** 将有皇后的地方设置为T...
分类:
其他好文 时间:
2014-12-10 12:30:56
阅读次数:
146
八皇后问题题解这应该是典型的递归问题,当然也涉及枚举问题,回溯法;首先对第一个皇后进行排序,第一列有8个位置供她选择,然后将其所在的行和两千对角线分别进行标记三个数组中,在进行第n个皇后进行排序有八个位置供她选择,但要检验其所在行和对角线上是否已被其他皇后占领。 还有是一定要搞明白出战问题,在出战后...
分类:
其他好文 时间:
2014-12-08 21:14:21
阅读次数:
158
结合问题说方案,首先先说问题:八皇后问题:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。嗯,这个问题已经被使用各种语言解答一万遍了,大多还是回溯法解决的。关于回溯算法:个人理解为就是优化的穷举算法,穷举算法是指列出所有的可能...
分类:
编程语言 时间:
2014-12-08 17:21:32
阅读次数:
259