在国际象棋棋子数量中除了兵可以升级外其它棋子可以升级吗


会下国际象棋棋子数量的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子如何将 8 个皇后放在棋盘上(有 8 * 8 个方格),使它们谁也不能被吃掉!这就是著名的八皇后問题。 对于某个满足要求的 8 皇后的摆放方法,定义一个皇后串 a 与之对应, a=b1b2...b8,即其中 bi 为相应摆法中第 i 行皇后所处的列数已经知道 8 皇后问题一共有 92 組解(即 92 个不同的皇后串)。给出一个数 b,要求输出第 b 个串串的比较是这样的:皇后串 x 置于皇后串 y 之前,当且仅当将 x 视为整数时比 y 小。

第 1 行是测试數据的组数 n,后面跟着 n 行输入每组测试数据占 1 行,包括一个正整

n 行,每行输出对应一个输入。输出应是一个正整数,是对应于 b 的皇后串

递归解八瑝后问题 从题目的意思可以看出每一个皇后在横,竖斜的方向上是占有控制权的,那么在一个棋盘上每一行最多只能摆一个棋子每擺好一个皇后如果我记录她的控制范围,那么我下一次就从下一行逐列的搜寻没有被已经摆过的皇后所控制的区域 依次搜寻下去,直到擺完八个皇后为止


从每一次摆放皇后的过程中我们可以发现每一个皇后的摆放过程都是一样的,那么我们可以只需要写出一个皇后的摆放过程就可以了而皇后的总数最多只有8个,很明显这样的特征已经构成了递归的性质


那么在实际解的过程中,我们可以用3个一维数组來记录列控制45度角控制,135度角控制

据此我们可以写出代码:

// 每次均从小到大遍历,保证最后的结果序列是有序的
  • 举报视频:螺丝钉:国际象棋棋孓数量大家会吗在象棋中,每一个棋子都非常重要

0游园活动项目和游戏规则 - 附表1:遊园活动项目和游戏规则.doc

参考资料

 

随机推荐