\\ * * * * * * * * * * * * * * *\\协调序列库\\ * * * * * * * * * * * * * * *宽度=-1高度=-1坐标=矩阵(0,0)标签=矩阵(0,0)初始化(屏幕)={高度=#屏幕;宽度=#屏幕[1];坐标=矩阵(宽度、高度、x、y、[]);标签=矩阵(宽度、高度、x、y、“”);对于(s=1,#屏幕,我的(y=#screen-s);my(行=Vec(屏幕));对于(x=0,#row-1,我的(d=行[x+1]);如果((d>=“A”&&d<=“Z”)||(d>=“a”&&d<=“Z”)||(d>=“0”&&d<=“9”),eval(Str(“p”d“=”x+I*y));标签[1+x,1+y]=d;);););}向上(z)=z+I*高度向下(z)=z-I*高度右侧(z)=z+宽度左(z)=z-宽度\\单向链路link1(z,zz)={my(x=实际(z)%宽度,y=imag(z)%height);坐标[1+x,1+y]=concat(坐标[1+x,1+y],zz-z);}\\双向链路链接(a,b)=链接1(a,b);链接1(b,a);\\来自同一来源的双向链接链接(a,bb)=用于(i=1,#bb,链接(a、bb[i]));\\邻居邻居(z)={my(x=实际(z)%宽度,y=imag(z)%height);my(n=应用(c->c+z,坐标[1+x,1+y]);\\打印(“#”z“->”n);收益(n);}\\复杂的see/seen例程上限=100000大值=集([])小值=矢量(4,i,[])参见索引(z)={my(s=1,x=实(z),y=图像(z));如果(x<1,s+=1;x=1-x;);如果(y<0,s+=2;y=-y;);返回([s,x,y]);}参见(z)={my(索引=参见索引(z));如果(最大值(索引[2],索引[3])>大极限,大值=集合并集(大值,集合([z])),if(#小值[索引[1]]<索引[2],小值[索引[1]]=concat(小值[指标[1]],向量(指标[2]-小值[指数[1])));小值[索引[1]][索引[2]]=位或(小值[指数[1]][指数[2]],2^索引[3]));}参见(z)={my(索引=见索引(z));如果(最大值(索引[2],索引[3])>大极限,return(设置搜索(大值,z)),if(#小值[索引[1]]<索引[2],返回(0),返回(位测试(小值[索引[1]][索引[2],索引[3]))););}\\计算坐标序列计算(z,mx)={my(电流=[z]);对于(n=0,mx,\\打印(“#”当前);打印(n“”#当前);如果(n==mx,断裂);对于(c=1,#电流,参见(当前[c]););my(其他=concat(应用(邻居,当前));当前=选择(p->!见(p),设置(其他)););}{初始化([“.KIDE.”,“MLHCFG”,“..JB..”,“…一…”]);链路(pA,down(pD));链路(pA,down(pI));链接(pA,向下(右侧(pM));链接(pA,左侧(pG));链接(pA,pJ);链接(pA、pB);链接(pB,pJ);链接(pI,pD);链接(pI,pH);链接(pH,pC);链接(pC,pB);链接(pJ,pH);链接(pC,pD);链接(pD,pE);链接(pE,右(pL));链接(pD,右(pM));连接(pE,pG);链接(pG,右(pJ));链接(pG,向下(右(pI));链接(pF,pG);链接(pF,pC);链接(pC,pE);链接(pE,pF);链路(pF,向下(右(pK));链接(pF,pB);链接(pB,向下(右侧(pM));链接(pH,pL);链接(pL,pM);链接(pM,pK);链接(pK,pL);链接(pL,pJ);链接(pH,pK);链接(pK,pI);}分配(2^30)\\A299910型计算(pB,2500)退出