zoukankan      html  css  js  c++  java
  • 马踏棋盘算法(骑士周游问题) 数据结构和算法60

    马踏棋盘算法(骑士周游问题)

     

    让编程改变世界

    Change the world by program


     

    马踏棋盘算法(骑士周游问题)

     

    题目渊源:

     
    马踏棋盘问题(又称骑士周游或骑士漫游问题)是算法设计的经典问题之一。
     

    题目要求:

     
    国际象棋的棋盘为8*8的方格棋盘,现将“马”放在任意指定的方格中,按照“马”走棋的规则将“马”进行移动。要求每个方格只能进入一次,最终使得“马”走遍棋盘64个方格。 编写代码,实现马踏棋盘的操作,要求用1~64来标注“马”移动的路径(看演示)。
     

    关于国际象棋“马”的走法

      [caption id="attachment_2556" align="alignnone" width="453"]国际象棋“马”的走法 国际象棋“马”的走法[/caption]  

    马踏棋盘的一个解

      对于在n*n的棋盘上,当n>=5且为偶数的时候,以任意点作点都有解。 [caption id="attachment_2557" align="alignnone" width="408"]骑士周游问题 骑士周游问题[/caption]  

    一些相关的知识点

     

    回溯法:

    之前我们谈过回溯法,还是那句话,指导思想很简单,就是一条路走到黑,碰壁了再回来一条路走到黑......一般和递归可以很好的搭配使用,还有深度优先搜索(DFS)。
     

    哈密尔顿路径:

    图G中的哈密尔顿路径指的是经过图G中每个顶点,且只经过一次的一条轨迹。如果这条轨迹是一条闭合的路径(从起点出发不重复地遍历所有点后仍能回到起始点),那么这条路径称为哈密尔顿回路。
     

    算法描述及代码编写

      那么就让我们愉快的开始今天的代码之旅吧! 参考代码 [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/BdsUAwJ1vwBX.JZRf54']视频下载[/Downlink]
  • 相关阅读:
    HDU1542矩形面积并
    HDU5869树状数组+gcd预处理
    HDU5845 Best Division
    整体二分
    Lattice 的 Framebuffer IP核使用调试笔记之datasheet笔记
    DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例)
    ISD1700系列多段语音录放系列
    Lattice Diamond 学习之编译、检查和设置约束
    欧拉函数的几个性质及证明
    CF776B Sherlock and his girlfriend
  • 原文地址:https://www.cnblogs.com/LoveFishC/p/3847311.html
Copyright © 2011-2022 走看看