%I#6 2012年5月25日14:28:37
%序号1,0,213888920752404294
%N连接N X N栅格对角的非交叉(或自空)骑士路径数。
%e当n=3时,这是将骑士从a1移动到c3而不占用任何单元格两次的方法数。只有两条路径:a1-b3-c1-a2-c3和a1-c2-a3-b1-c3。
%e当n=8时,这是将骑士从a1移动到h8而不占用任何单元格两次的方法数。
%o(C)
%o#包括<stdio.h>
%o内部宽度、高度;
%o字符网格[16][16];
%o int calc_ways(int x,int y){
%o如果(!((无符号)x<WIDTH&&(无符号的)y<HEIGHT))返回0;
%o如果(网格[x][y])返回0;
%o如果(x+y==宽度+高度-2)返回1;
%o网格[x][y]=1;
%o整数;
%o n=计算路径(x-2,y-1);
%o n+=计算路径(x-2,y+1);
%o n+=计算方式(x-1,y-2);
%o n+=计算路径(x-1,y+2);
%o n+=计算方式(x+1,y-2);
%o n+=计算方式(x+1,y+2);
%o n+=计算方式(x+2,y-1);
%o n+=计算方式(x+2,y+1);
%o网格[x][y]=0;
%o返回n;
%o}(o)
%o int main(int argc,char**argv)
%o个{
%o表示(int i=1;i<8;++i){
%o宽度=高度=i;
%o memset(网格,0,sizeof(网格));
%o打印f(“%2d:%d\n”,i,calc_ways(0,0));
%o}(o)
%o}(o)
%Y参考A007764:车路径(单位长度移动)。
%Y参考A038496:bishop路径(单位长度移动)。
%Y参见A140518:国王之路。
%K nonn,步行
%氧1,3
%2012年5月24日,阿列克斯·拉图什尼亚克
|