S40902.9-2 踏破虚格

传统题 时间 1000 ms 内存 256 MiB 3 尝试 0 已通过 0

9-2 踏破虚格

踏破虚格

意识迷宫的第二层,是一片悬浮在虚空中的网格。网格由半透明的能量块拼成,每一块都在缓慢呼吸般明灭。一个银色的数据节点——像一匹没有实体的马——站在起点,等待着被释放。

"它要踏遍所有虚格。"Echo说,"但规则很残酷:它只能按固定的轨迹跳跃——横向两格再纵向一格,或者纵向两格再横向一格。每个虚格只能踏一次,一旦留下脚印,那块能量就会塌陷。"

CC抱臂看着那匹银马:"这像啥子?跳房子?"

"像一条不能回头的路。"你说,"如果银马跳进了死角,周围的虚格都已经塌陷,它就再也走不动了。那时候只能退回上一个分叉点,重新选方向。"

"那要是棋盘很大呢?"CC问,"瞎跳岂不是要累死?"

"所以要让它有眼光地跳。"你说,"每到一个虚格,先看它所有能去的邻居。如果某个邻居周围只剩一条路可走——再不踏就永远没机会了——那就优先去那里。先把'死胡同'占掉,保住后面的生机。"

你接入控制银马的神经链路。网格在你视野里展开,像一张发光的棋盘。你感知着银马的八条跃迁轨迹,每一步都计算着周围虚格的剩余寿命。有一次,银马差点跳进一片开阔地,你猛地刹住——那片开阔地的中央是一个孤岛,踏进去就出不来了。你退回三步,换了一条更险峻但更有回旋余地的路线。

当银马踏下第四十七步时,它正好落在棋盘的中央格。整个网格瞬间由半透明的灰蓝转为璀璨的金黄。

"又是四十七。"CC说。

"中央格。"Echo轻声说,"Zero的习惯。它总把关键帧放在最中心。"


题目描述

n×mn \times m 的棋盘,马从某点出发,能否不重复地踏遍所有格子。

输入格式

n,mn, m,以及起始坐标。

输出格式

一条合法路径,或无解。

输入样例

5 2 1 5 2 1 5 2 1

输出样例

11
2

提示

  • 逐格搜索可行跳跃方向,进入死路则回退。
  • 优先选择出路少的邻居节点以加速搜索。

棋盘解开后,出现了一扇光门。Echo飘到门前,投影被门的光芒切割成碎片。

"第三层。"她说。

在线编程 IDE

建议全屏模式获得最佳体验