以前那个是8皇后问题,用的递归写法,然后这个可以求n皇后放置问题,用的纯粹数学方法……神奇!
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#d...
分类:
其他好文 时间:
2014-07-22 23:04:55
阅读次数:
205
题意:(八皇后问题的变形)给定8个皇后的位置,然后问最少要走几步使得每个皇后之间可以不相互攻击(不在同一行同一列同一斜线)。其中走的过程每步可以横着竖着斜着走多个格子。
解法:先枚举所有合法的八皇后局面(总共92种)。然后将给的点对合法八皇后局面进行匹配。dp[i][j]表示合法八皇后前i个点用掉给定八皇后集合的子集j所花费的最小步数。这里的匹配相当于两个集合各八个点,进行一一配对。原来...
分类:
其他好文 时间:
2014-05-08 11:13:51
阅读次数:
317
题目链接:278 - Chess
题意:求出四种棋子最多放几个
思路:车能放行列的较小值,王隔着放,皇后根据八皇后问题可知,也是放行列最小值。
关键在于马,之前做过一题类似的,马分一行,两行,和两行以上考虑,一行就能全放,两行就隔一个田字格放,三行以上就每个马隔一个位置放。
代码:
#include
#include
#include
using namespace std;
i...
分类:
其他好文 时间:
2014-04-29 13:45:20
阅读次数:
381
题目链接:11538 - Chess Queen
题意:给一个n*m棋盘,问放两个皇后,使得两个皇后互相能攻击到,有几种放法
思路:分横竖,对角线来考虑。
横:n * A(m, 2)种
竖:m * A(n, 2)种
对角线:由于有两条,可以算一条再乘2
2 * 所有对角线和(A(对角线格数,2))。
那么对角线格数为:(1, 2, 3, 4 ... n .n .n .n.n - 1....
分类:
其他好文 时间:
2014-04-29 13:38:20
阅读次数:
387
八皇后Description会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 *
8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2...b8,其中bi为相应摆...
分类:
其他好文 时间:
2014-04-28 11:00:47
阅读次数:
942