马能否走遍棋盘的可达性证明

马能否走遍棋盘的可达性证明
而题目本身要求输出 个答案仅输出就至少需要所以对于原题BFS 已经达到最优复杂度量级。不过继续考虑两个问题如果只询问到某一个点的距离是否存在直接公式是否存在马永远到不了的点显然这两个问题必须区分有限棋盘与无限棋盘。一、无限棋盘上的单点最短距离公式将起点平移到原点 目标点记为 。由于马步关于坐标轴和直线 对称只需令于是总有在无限棋盘上最短步数为其他情况其中先计算再按照奇偶性修正例如目标位移最少步数这个公式中的三个限制马的一步位移为首先较大的坐标差每一步最多减少 因此其次坐标绝对值之和每一步最多减少 因此所以最后马每走一步坐标和的奇偶性都会翻转。因为一步中坐标和的变化量一定是奇数因此若走 步到达 必须满足所以当 与 奇偶性不同时还需要再加一步。两个特殊点 与 属于距离过小造成的局部例外需要单独处理。例如因此从原点到 可以三步到达但不可能更少。二、为什么这个公式不能解决原题上面的公式针对的是无限棋盘。原题中的棋盘存在边界而无限棋盘上的最短路径可能会暂时跳出矩形区域。例如在无限棋盘上所以从 到 可以两步到达。但在 棋盘中 已经越界这条路径不合法。事实上中心点 没有任何合法马步与其他位置连接。从左上角出发时距离表为因此无限棋盘上的最短距离有限棋盘上的最短距离有限棋盘中边界会改变整张马步图的结构所以原题仍应使用 BFS。三、无限棋盘上有没有永远到不了的点没有。这个结论可以直接通过生成元证明。把所有整数格点组成的集合视为加法群马的一步能够产生的位移向量为记这些向量生成的子群为只需证明因为 与 生成整个 。首先所以对应路径为其次所以对应路径为于是对任意整数点 都有因此即无限棋盘上马可以到达任意整数格点。四、尝试黑白染色将棋盘按照 的奇偶性染成黑白两色。马每走一步 的奇偶性都会翻转因此格子颜色也会翻转。所以如果目标点与起点同色则所需步数一定为偶数如果目标点与起点异色则所需步数一定为奇数。即但是这只能限制步数的奇偶性不能证明某个点不可达。例如 与原点异色所以它必须经过奇数步到达而它确实可以在三步后到达因此在无限棋盘上染色法约束步数奇偶但不产生不可达点。五、有限矩形棋盘什么时候连通考虑一个没有障碍物的 矩形棋盘不妨设结论为的马步图连通或且换言之除单格棋盘外不连通的矩形棋盘只有下面分别证明。六、 棋盘不连通如果棋盘只有一行马不存在任何合法移动。因为马的一步至少需要跨越两行或三行而棋盘中只有一行。因此当 时每个格子都是孤立点不连通七、 棋盘不连通如果棋盘只有两行马的一步不可能让行号变化 否则会越界。因此合法移动只能满足行列也就是说列编号每次只能变化 于是列编号的奇偶性保持不变。第 列第 列第 列第 列第 列第 列奇偶奇偶奇偶奇偶奇偶奇偶从奇数列出发永远到不了偶数列从偶数列出发永远到不了奇数列。因此不连通这里的不变量是列编号模的余数八、 棋盘不连通考虑中心点 。从中心点出发马无论走还是都会越界。所以中心点没有任何邻点。由于马步可逆也没有任何其他点能够到达中心点。孤立点因此不连通九、 棋盘连通下面给出一条经过全部十二个格子的合法路径。表格中的数字表示访问顺序