(Python)
#使用石墨
从graphillion导入GraphSet
导入graphillion.tutorial作为tl
如果n==1:返回1
宇宙=tl.grid(n-1,n-1)
GraphSet.set_universe(宇宙)
开始,目标=1,n*n
paths=GraphSet.paths(开始,目标)
对于范围(n-1)内的i:
路径=路径。包括((n+1)*i+1)
返回路径.len()
(红宝石)
定义搜索(x,y,n,used)
如果x<0||n<=x|y<0|n<=y||使用[x+y*n],则返回0
如果x==n-1&&y==n-1-&(0..n-2).all,则返回1?{|i|使用了[(n+1)*i]==true}
碳纳米管=0
使用的[x+y*n]=真
@移动。每个{|mo|
cnt+=搜索(x+mo[0],y+mo[1],n,已使用)
}
已使用[x+y*n]=假
碳纳米管
结束
定义A(n)
@移动=[[1,0],[-1,0],[0,1],[0,-1]]
used=Array.new(n*n,false)
搜索(0,0,n,已使用)
结束
(1..n).map{|i|A(i)}
结束
|