hdu 5926.Mr. Frog’s Game
Posted icfir
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 5926.Mr. Frog’s Game相关的知识,希望对你有一定的参考价值。
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的主要内容,如果未能解决你的问题,请参考以下文章
HDU 5926 Mr. Frog’s Game(连连看,暴力)——2016CCPC东北地区大学生程序设计竞赛 - 重现赛
HDU 5926 Basic Mr. Frog’s Game 瞎搞