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 |
用的1222一样的算法,为什么wa呢???贴代码,请有兴趣的人帮忙看一下: #include<stdio.h> #include<string.h> #define WALLSIZE 17 int main() { int t,n,MinPiant,NowPiant,Cases; int i,j,k,ii,tmp; char Wall[WALLSIZE][WALLSIZE],WallTmp[WALLSIZE][WALLSIZE]; scanf("%d",&t); for(i = 0;i < t;i ++) { MinPiant = 226; Cases = 1; scanf("%d",&n); for (j = 0;j < n;j ++) { scanf("%s",Wall[j + 1] + 1); Cases *= 2; } for (k = 0;k < Cases;k ++) { tmp = k; NowPiant = 0; for (j = 0;j < n ;j ++) strcpy(WallTmp[j + 1],Wall[j + 1]); for (j = 0;j < n;j ++) { if ((tmp % 2) == 1) { NowPiant ++; if (WallTmp[1][j + 1] == 'y') WallTmp[1][j + 1] = 'w'; else WallTmp[1][j + 1] = 'y'; if (WallTmp[1][j + 2] == 'y') WallTmp[1][j + 2] = 'w'; else WallTmp[1][j + 2] = 'y'; if (WallTmp[1][j] == 'y') WallTmp[1][j] = 'w'; else WallTmp[1][j] = 'y'; if (WallTmp[2][j + 1] == 'y') WallTmp[2][j + 1] = 'w'; else WallTmp[2][j + 1] = 'y'; } tmp = tmp / 2; } for (j = 1;j < n;j ++) { for (ii = 0;ii < n;ii ++) if (WallTmp[j][ii + 1] == 'w') { NowPiant ++; if (WallTmp[j + 1][ii + 1] == 'y') WallTmp[j + 1][ii + 1] = 'w'; else WallTmp[j + 1][ii + 1] = 'y'; if (WallTmp[j + 1][ii + 2] == 'y') WallTmp[j + 1][ii + 2] = 'w'; else WallTmp[j + 1][ii + 2] = 'y'; if (WallTmp[j + 1][ii] == 'y') WallTmp[j + 1][ii] = 'w'; else WallTmp[j + 1][ii] = 'y'; if (WallTmp[j][ii + 1] == 'y') WallTmp[j][ii + 1] = 'w'; else WallTmp[j][ii + 1] = 'y'; if (WallTmp[j + 2][ii + 1] == 'y') WallTmp[j + 2][ii + 1] = 'w'; else WallTmp[j + 2][ii + 1] = 'y'; } } for (j = 1;j < n + 1;j ++) if (WallTmp[n][j] == 'w') break; if ((j == (n + 1)) && (NowPiant < MinPiant)) MinPiant = NowPiant; } if (MinPiant < 226) printf("%d\n",MinPiant); else printf("Inf\n"); } return 1; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator