1. 程式人生 > >hdu 5926.Mr. Frog’s Game

hdu 5926.Mr. Frog’s Game

mmm ios problem color 上下 開心 include ostream 循環

http://acm.hdu.edu.cn/showproblem.php?pid=5926

題意:判斷給出的這個連連看能不能連上(一次就行)

水,在首行首列或者尾行尾列的需要判斷一下自己這一行或者這一列有沒有能連上的(四個角的行列都需要判斷),然後是所有的都判斷一下相鄰的能不能連就可以了

啪啪啪打完開心的提交,emmmm居然wa了.....怎麽看都沒錯,又重新看了一遍題的時候突然發現人家要的是只有首字母大寫的yes和no.....我全大寫了,真是個傻子2333

 1 #include<iostream>
 2 using namespace std;
 3 int s[33][33];
4 int X,Y; 5 bool ch(int x,int y) 6 { 7 int i,j; 8 if(x==1||x==X)//首行尾行 9 { 10 j=1; 11 while(j<=Y) 12 { 13 if(s[x][j]==s[x][y]&&y!=j)return 0; 14 j++; 15 } 16 } 17 if(y==1||y==Y)//首列尾列 18 { 19 i=1
; 20 while(i<=Y) 21 { 22 if(s[i][y]==s[x][y]&&i!=x)return 0; 23 i++; 24 } 25 } 26 if(x-1>0&&s[x-1][y]==s[x][y])return 0;//判斷上下左右 27 if(y-1>0&&s[x][y-1]==s[x][y])return 0; 28 if(x+1<=X&&s[x+1][y]==s[x][y])return
0; 29 if(y+1<=Y&&s[x][y+1]==s[x][y])return 0; 30 return 1; 31 } 32 int main() 33 { 34 int T,I=1; 35 scanf("%d",&T); 36 while(T--) 37 { 38 bool f=1;//遊戲是否可行的標誌1為不可行 39 printf("Case #%d: ",I++); 40 scanf("%d %d",&X,&Y); 41 int i,j; 42 i=1; 43 while(i<=X) 44 { 45 j=1; 46 while(j<=Y) 47 { 48 scanf("%d",&s[i][j]); 49 j++; 50 } 51 i++; 52 } 53 i=1; 54 while(i<=X&&f)//如果f為0說明遊戲可行終止循環 55 { 56 j=1; 57 while(j<=Y&&f)//如果f為0說明遊戲可行終止循環 58 { 59 if(!ch(i,j))f=0;//可行置0 60 j++; 61 } 62 i++; 63 } 64 if(!f) 65 printf("Yes\n"); 66 else 67 printf("No\n"); 68 } 69 return 0; 70 }

hdu 5926.Mr. Frog’s Game