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:这题的范围有问题吗? 为什么我在读入的地方老是RE 请看下面: Posted by:rruucc at 2003-11-07 08:48:04 #include<stdio.h> #include<string.h> #define MaxN 101 #define integer short int n,l; integer map[MaxN][MaxN][MaxN],c[MaxN*MaxN*MaxN]; int t[MaxN*MaxN*MaxN]; void swap(integer &a,integer &b) { integer c=a; a=b; b=c; } void init() { int i,j,k,x,y,z,tmp; scanf("%d",&n); l=n*n*n; for (i=0; i<n; i++) for (j=0; j<n; j++) for (k=0; k<n; k++) {scanf("%d",&tmp); map[k][j][i]=integer(tmp); if (map[k][j][i]==0) {x=i; y=j; k=z;} } while (x<n-1) {swap(map[x][y][z],map[x+1][y][z]); x++;} while (y<n-1) {swap(map[x][y][z],map[x][y+1][z]); y++;} while (z<n-1) {swap(map[x][y][z],map[x][y][z+1]); z++;} for (i=0; i<l; i++) {j=i; x=j%n; j/=n; y=j%n; j/=n; z=j; c[i]=map[x][y][z]; } } int lowbit(int p) {return p&(p^(p-1));} int get_t(int s,int e) { int p=s,tmp=0; while (p<=e) {tmp+=t[p]; p+=lowbit(p);} return tmp; } void insert(int p) {while (p>=1) {t[p]++; p-=lowbit(p);} } void search() { int i; __int64 d=0; memset(t,0,sizeof(t)); for (i=0; i<l-1; i++) {d+=get_t(c[i]+1,l); insert(c[i]); } if (d%2==0) printf("Puzzle can be solved.\n"); else printf("Puzzle is unsolvable.\n"); } int main() { int testdata,i; scanf("%d",&testdata); for (i=0; i<testdata; i++) {init(); // search(); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator