题目描述

在国际象棋棋盘上(8*8)放置八个皇后,使得任意两个皇后之间不能在同一行,同一列,也不能位于同于对角线上。问共有多少种不同的方法,并且按字典序从小到大指出各种不同的放法。

题解

见证奇迹的时刻!!!

  1. #include<cstdio>
  2. int main(){
  3. printf(
  4. "1 5 8 6 3 7 2 4\n"
  5. "1 6 8 3 7 4 2 5\n"
  6. "1 7 4 6 8 2 5 3\n"
  7. "1 7 5 8 2 4 6 3\n"
  8. "2 4 6 8 3 1 7 5\n"
  9. "2 5 7 1 3 8 6 4\n"
  10. "2 5 7 4 1 8 6 3\n"
  11. "2 6 1 7 4 8 3 5\n"
  12. "2 6 8 3 1 4 7 5\n"
  13. "2 7 3 6 8 5 1 4\n"
  14. "2 7 5 8 1 4 6 3\n"
  15. "2 8 6 1 3 5 7 4\n"
  16. "3 1 7 5 8 2 4 6\n"
  17. "3 5 2 8 1 7 4 6\n"
  18. "3 5 2 8 6 4 7 1\n"
  19. "3 5 7 1 4 2 8 6\n"
  20. "3 5 8 4 1 7 2 6\n"
  21. "3 6 2 5 8 1 7 4\n"
  22. "3 6 2 7 1 4 8 5\n"
  23. "3 6 2 7 5 1 8 4\n"
  24. "3 6 4 1 8 5 7 2\n"
  25. "3 6 4 2 8 5 7 1\n"
  26. "3 6 8 1 4 7 5 2\n"
  27. "3 6 8 1 5 7 2 4\n"
  28. "3 6 8 2 4 1 7 5\n"
  29. "3 7 2 8 5 1 4 6\n"
  30. "3 7 2 8 6 4 1 5\n"
  31. "3 8 4 7 1 6 2 5\n"
  32. "4 1 5 8 2 7 3 6\n"
  33. "4 1 5 8 6 3 7 2\n"
  34. "4 2 5 8 6 1 3 7\n"
  35. "4 2 7 3 6 8 1 5\n"
  36. "4 2 7 3 6 8 5 1\n"
  37. "4 2 7 5 1 8 6 3\n"
  38. "4 2 8 5 7 1 3 6\n"
  39. "4 2 8 6 1 3 5 7\n"
  40. "4 6 1 5 2 8 3 7\n"
  41. "4 6 8 2 7 1 3 5\n"
  42. "4 6 8 3 1 7 5 2\n"
  43. "4 7 1 8 5 2 6 3\n"
  44. "4 7 3 8 2 5 1 6\n"
  45. "4 7 5 2 6 1 3 8\n"
  46. "4 7 5 3 1 6 8 2\n"
  47. "4 8 1 3 6 2 7 5\n"
  48. "4 8 1 5 7 2 6 3\n"
  49. "4 8 5 3 1 7 2 6\n"
  50. "5 1 4 6 8 2 7 3\n"
  51. "5 1 8 4 2 7 3 6\n"
  52. "5 1 8 6 3 7 2 4\n"
  53. "5 2 4 6 8 3 1 7\n"
  54. "5 2 4 7 3 8 6 1\n"
  55. "5 2 6 1 7 4 8 3\n"
  56. "5 2 8 1 4 7 3 6\n"
  57. "5 3 1 6 8 2 4 7\n"
  58. "5 3 1 7 2 8 6 4\n"
  59. "5 3 8 4 7 1 6 2\n"
  60. "5 7 1 3 8 6 4 2\n"
  61. "5 7 1 4 2 8 6 3\n"
  62. "5 7 2 4 8 1 3 6\n"
  63. "5 7 2 6 3 1 4 8\n"
  64. "5 7 2 6 3 1 8 4\n"
  65. "5 7 4 1 3 8 6 2\n"
  66. "5 8 4 1 3 6 2 7\n"
  67. "5 8 4 1 7 2 6 3\n"
  68. "6 1 5 2 8 3 7 4\n"
  69. "6 2 7 1 3 5 8 4\n"
  70. "6 2 7 1 4 8 5 3\n"
  71. "6 3 1 7 5 8 2 4\n"
  72. "6 3 1 8 4 2 7 5\n"
  73. "6 3 1 8 5 2 4 7\n"
  74. "6 3 5 7 1 4 2 8\n"
  75. "6 3 5 8 1 4 2 7\n"
  76. "6 3 7 2 4 8 1 5\n"
  77. "6 3 7 2 8 5 1 4\n"
  78. "6 3 7 4 1 8 2 5\n"
  79. "6 4 1 5 8 2 7 3\n"
  80. "6 4 2 8 5 7 1 3\n"
  81. "6 4 7 1 3 5 2 8\n"
  82. "6 4 7 1 8 2 5 3\n"
  83. "6 8 2 4 1 7 5 3\n"
  84. "7 1 3 8 6 4 2 5\n"
  85. "7 2 4 1 8 5 3 6\n"
  86. "7 2 6 3 1 4 8 5\n"
  87. "7 3 1 6 8 5 2 4\n"
  88. "7 3 8 2 5 1 6 4\n"
  89. "7 4 2 5 8 1 3 6\n"
  90. "7 4 2 8 6 1 3 5\n"
  91. "7 5 3 1 6 8 2 4\n"
  92. "8 2 4 1 7 5 3 6\n"
  93. "8 2 5 3 1 7 4 6\n"
  94. "8 3 1 6 2 5 7 4\n"
  95. "8 4 1 3 6 2 7 5\n"
  96. "92");
  97. return 0;
  98. }

八皇后O(1)算法题解的更多相关文章

  1. 【算法导论】八皇后问题的算法实现(C、MATLAB、Python版)

    八皇后问题是一道经典的回溯问题.问题描述如下:皇后可以在横.竖.斜线上不限步数地吃掉其他棋子.如何将8个皇后放在棋盘上(有8*8个方格),使它们谁也不能被吃掉?         看到这个问题,最容易想 ...

  2. 八皇后问题-recall算法

    #!/usr/bin/env python3# -*- coding: utf-8 -*-import numbersimport numpyimport math'''八皇后为题:在国际象棋棋盘上摆 ...

  3. 回溯算法 LEETCODE别人的小结 一八皇后问题

    回溯算法实际上是一个类似枚举的搜索尝试过程,主要是在搜索尝试中寻找问题的解,当发现已不满足求解条件时,就回溯返回,尝试别的路径. 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目的.但是当探索到某 ...

  4. 八皇后算法的另一种实现(c#版本)

    八皇后: 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于 ...

  5. Python学习二(生成器和八皇后算法)

    看书看到迭代器和生成器了,一般的使用是没什么问题的,不过很多时候并不能用的很习惯 书中例举了经典的八皇后问题,作为一个程序员怎么能够放过做题的机会呢,于是乎先自己来一遍,于是有了下面这个ugly的代码 ...

  6. 回溯算法-C#语言解决八皇后问题的写法与优化

    结合问题说方案,首先先说问题: 八皇后问题:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. 嗯,这个问题已经被使用各种语言解 ...

  7. 算法——八皇后问题(eight queen puzzle)之回溯法求解

    八皇后谜题是经典的一个问题,其解法一共有种! 其定义: 首先定义一个8*8的棋盘 我们有八个皇后在手里,目的是把八个都放在棋盘中 位于皇后的水平和垂直方向的棋格不能有其他皇后 位于皇后的斜对角线上的棋 ...

  8. 【算法】八皇后问题 Python实现

    [八皇后问题] 问题: 国际象棋棋盘是8 * 8的方格,每个方格里放一个棋子.皇后这种棋子可以攻击同一行或者同一列或者斜线(左上左下右上右下四个方向)上的棋子.在一个棋盘上如果要放八个皇后,使得她们互 ...

  9. 『嗨威说』算法设计与分析 - 回溯法思想小结(USACO-cha1-sec1.5 Checker Challenge 八皇后升级版)

    本文索引目录: 一.回溯算法的基本思想以及个人理解 二.“子集和”问题的解空间结构和约束函数 三.一道经典回溯法题点拨升华回溯法思想 四.结对编程情况 一.回溯算法的基本思想以及个人理解: 1.1 基 ...

  10. 八皇后问题求解java(回溯算法)

    八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处 ...

随机推荐

  1. linux查看文件的编码格式的方法 set fileencoding PYTHON

    linux查看文件的编码格式的方法 set fileencoding   乱码原因:因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件.但是windows的本地默认编码是cp93 ...

  2. elk搜集日志,实现logstash根据message中结构不同动态创建索引并扩展功能,区分message中json和非json数据简单方式

    搜集日志,但是框架本身也会打印很多日志是字符串的.我们自己希望的日志用json,但是又需要json字段可以扩展,logstash收集日志后都放在了message字段中,我们自定义打印的是json串,s ...

  3. 8.8-9 fsck、dd

    8.8 fsck:检查并修复Linux文件系统 fsck命令用于检查并修复文件系统中的错误,即针对有问题的系统或磁盘进行修复,类似的命令还有e2fsck命令.有关fsck的使用需要特别注意的是:    ...

  4. gpcj-07.为什么是连锁零售类公司

    1.量化分析的真面目 本课的目的: ·理解零售类公司价值分析的逻辑·学会量化分析公司的思路和原理前言的前沿 和大部分投资者不同,我们的投资核心之一,就是从下而上的分析.宏观经济对我们公司分析影响极少. ...

  5. html原生js实现99乘法表

    原生的js实现99乘法表实现选择下拉框颜色,改变背景颜色为选中的颜色 <!DOCTYPE html> <html> <head> <meta charset= ...

  6. Linux(CentOS 7) 安全加固之非业务端口服务关闭 postfix port 25

    目录 关闭TCP 25 端口对应的服务 1. 确认对应端口的进程 2. 查找与关闭对应服务 3. 确认结果,端口已关闭 关闭TCP 25 端口对应的服务 [0 root@Qvps /root] #ca ...

  7. [论文阅读笔记] Are Meta-Paths Necessary, Revisiting Heterogeneous Graph Embeddings

    [论文阅读笔记] Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings 本文结构 解决问题 主要贡献 算法原理 参考文 ...

  8. 如何实现一个简易版的 Spring - 如何实现 AOP(下)

    前言 前面两篇 如何实现 AOP(上).如何实现 AOP(中) 做了一些 AOP 的核心基础知识简要介绍,本文进入到了实战环节了,去实现一个基于 XML 配置的简易版 AOP,虽然是简易版的但是麻雀虽 ...

  9. GO学习-(35) Go实现日志收集系统4

    Go实现日志收集系统4   到这一步,我的收集系统就已经完成很大一部分工作,我们重新看一下我们之前画的图: 我们已经完成前面的部分,剩下是要完成后半部分,将kafka中的数据扔到ElasticSear ...

  10. Python+Selenium - 窗口切换

    当有新窗口出现时,并要在新窗口操作,步骤: 1.产生新窗口 2.获取所有窗口的句柄:driver.window_handles 3.切换函数:driver.switch_to.window(新窗口句柄 ...