假设对于某些n,即具有奇数边长的正方形,我有一个大小为(2n + 1)x(2n + 1)的正方形。
从最中心的单元格开始,我有兴趣计算no。到达任何边缘单元的方法(如下图所示)。
只允许非重叠路径,即如果已经访问过该单元格,我们就无法重新访问该单元格。
下图显示了一个方形,其边9(n = 4)和两条可能的长度为5的路径。
我认为所有路径都是长度范围:[n到(2n-1)^ 2 + 1]
算不了。长度路径:
1 - 0
2 - 0
3 - 0
4 - 4
5 - 32
6 - ......?
但随着Path长度的增加,我似乎无法解开所有可能性。我知道对称性在这里发挥作用,但有没有任何结构化的方法来计算所有的路径?
谢谢,
答案 0 :(得分:2)
要查找从方板中心开始并在边框处完成的路径,您可以使用经过调整的DFS(Depth First Search)来存储已访问过的切片,这样您就不会踩到他们又来了。
董事会确实存在很多对称性。只需注意:
,您可以将搜索路径的数量除以4U
p , D
拥有, L
eft , R
ight U
p 的所有路径都会生成 D
拥有, L
eft的所有其他路径, R
ight 轮值一旦你这样做,你可以进一步注意到:
U
,您就可以 U
, L
或 R
L
时生成的所有路径与通过镜像对称性 R
时生成的路径相同。您可以重复几次,直到到达广场的边界。从 U
开始的全部路径将是:
U-U-U-U
(一条路径)U-U-U-L
U-U-L
U-L
计算完毕后,您可以乘以4来获得全部路径。