您的位置:首页 > 其它

poj 1154

2014-12-10 20:31 239 查看
#include<stdio.h>
#include<cstring>
#include<iostream>
using namespace std;
const int N=30;
char s

;
int vis[100],num

,flag,maxn,n,m;
int mov[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
void dfs(int x,int y)
{
int i,j,k;
int tx,ty;
for(i=0;i<4;i++)
{
tx=x+mov[i][0];
ty=y+mov[i][1];
if(tx>=0&&tx<n&&ty>=0&&ty<m&&!vis[num[tx][ty]])
{
vis[num[tx][ty]]=1;
flag++;
dfs(tx,ty);
if(flag>maxn)
maxn=flag;
flag--;
vis[num[tx][ty]]=0;
}
}
}
int main()
{
int i,j,k;
while(cin>>n>>m)
{
for(i=0;i<n;i++)
{
scanf("%s",s[i]);
for(j=0;j<m;j++)
num[i][j]=s[i][j]-'A'+1;
}
flag=1,maxn=1;
vis[num[0][0]]=1;
dfs(0,0);
cout<<maxn<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: