E - Mr. Frog’s Game
https://vjudge.net/problem/HDU-5926/origin
如果有相邻的一样,或者在最外面一圈的边上有一样的就Yes;
#include<iostream> #include<cstdio> using namespace std; const int N=50; int dx[]= {1,0,-1,0}; int dy[]= {0,1,0,-1}; int main() { int t; cin>>t; int kase=1; while(t--) { int arr[N][N]; int n,m; cin>>n>>m; for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) cin>>arr[i][j]; } bool flag=false; for(int i=1; i<=m; i++) { for(int j=i+1; j<=m; j++) { if(arr[1][i]==arr[1][j]||arr[n][i]==arr[n][j]) { flag=1; break; } } if(flag) break; } for(int i=1; i<=n; i++) { for(int j=i+1; j<=n; j++) { if(arr[i][1]==arr[j][1]||arr[i][m]==arr[j][m]) { flag=1; break; } } if(flag) break; } for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) { for(int k=0; k<4; k++) { int nowx=i+dx[k]; int nowy=j+dy[k]; if(nowx>n||nowy>m||nowx<1||nowy<1) continue; if(arr[i][j]==arr[nowx][nowy]) { flag=1; break; } } if(flag) break; } if(flag) break; } if(flag) printf("Case #%d: Yes\n",kase++); else printf("Case #%d: No\n",kase++); } }

浙公网安备 33010602011771号