#include <bits/stdc++.h>
using namespace std;
char mz[55][55];
int go[2][4]={{1,0,-1,0},{0,1,0,-1}};
int vis[55][55];
int flag,n,m;
void dfs(int x,int y,int xfro,int yfro)
{
vis[x][y]++;
int i,tmpx,tmpy;
for(i=0;i<4;i++)
{
tmpx=x+go[0][i];
tmpy=y+go[1][i];
if(tmpx<1||tmpx>n||tmpy<1||tmpy>m||mz[tmpx][tmpy]!=mz[x][y])
continue;
if(!vis[tmpx][tmpy])
dfs(tmpx,tmpy,x,y);
else if(tmpx!=xfro||tmpy!=yfro)
flag=1;
}
}
int main()
{
int i,j;
while(cin>>n>>m)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
scanf(" %c",&mz[i][j]);
flag=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(!vis[i][j])
dfs(i,j,0,0);
if(flag)
printf("Yes\n");
else
printf("No\n");
}
}
51nod 1416 两点
最新推荐文章于 2018-10-17 19:12:47 发布