Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:大家帮忙看看!!In Reply To:大家帮忙看看!! Posted by:o00o at 2008-06-12 23:37:05 > #include<stdio.h> > #include<stdlib.h> > struct node > { > int key; > int depth; > }; > int chess[8][8],qb,qe,qsize; > node queue[65];//queue数组开65 ac,开64却run time error,why? > int main() > { > // freopen("in.txt","r",stdin); > int i,j,k,depth,r,c,target; > char sb[3],se[3]; > while(scanf("%s %s",sb,se)!=EOF) > { > for(i=0;i<8;i++) > for(j=0;j<8;j++) > chess[i][j]=0; > queue[0].key=8*(sb[1]-'0'-1)+(sb[0]-'a'); > queue[0].depth=0; > qb=0; > qe=1; > qsize=1; > target=8*(se[1]-'0'-1)+(se[0]-'a'); > while(qsize>0) > { > k=queue[qb].key; > depth=queue[qb].depth; > qb++; > qsize--; > if(k==target) > { > printf("To get from %s to %s takes %d knight moves.\n",sb,se,depth); > break; > } > r=k/8; > c=k%8; > if(r>=1&&c>=2&&chess[r-1][c-2]==0) > { > chess[r-1][c-2]=1; > queue[qe].key=8*(r-1)+c-2; > queue[qe].depth=depth+1; > qe++; > qsize++; > } > if(r>=2&&c>=1&&chess[r-2][c-1]==0) > { > chess[r-2][c-1]=1; > queue[qe].key=8*(r-2)+c-1; > queue[qe].depth=depth+1; > qe++; > qsize++; > } > if(r>=2&&c<=6&&chess[r-2][c+1]==0) > { > chess[r-2][c+1]=1; > queue[qe].key=8*(r-2)+c+1; > queue[qe].depth=depth+1; > qe++; > qsize++; > } > if(r>=1&&c<=5&&chess[r-1][c+2]==0) > { > chess[r-1][c+2]=1; > queue[qe].key=8*(r-1)+c+2; > queue[qe].depth=depth+1; > qe++; > qsize++; > } > if(r<=6&&c>=2&&chess[r+1][c-2]==0) > { > chess[r+1][c-2]=1; > queue[qe].key=8*(r+1)+c-2; > queue[qe].depth=depth+1; > qe++; > qsize++; > } > if(r<=5&&c>=1&&chess[r+2][c-1]==0) > { > chess[r+2][c-1]=1; > queue[qe].key=8*(r+2)+c-1; > queue[qe].depth=depth+1; > qe++; > qsize++; > } > if(r<=5&&c<=6&&chess[r+2][c+1]==0) > { > chess[r+2][c+1]=1; > queue[qe].key=8*(r+2)+c+1; > queue[qe].depth=depth+1; > qe++; > qsize++; > } > if(r<=6&&c<=5&&chess[r+1][c+2]==0) > { > chess[r+1][c+2]=1; > queue[qe].key=8*(r+1)+c+2; > queue[qe].depth=depth+1; > qe++; > qsize++; > } > } > } > return 0; > } > > queue数组开65 ac,开64却run time error。 > 在zoj和hdu开64是ac的,why? Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator