#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
int m,n;
char da[100][1010];
int sum;
int jg;
//3 2
//*.*
//.*.
void dfs(int x, int y)
{
//cout<<"dfs "<<x<<" "<<y<<endl;
if((((x>=0)&&(x<m))&&((y>=0)&&(y<n)))==0)
{
//cout<<"return "<<endl;
return;
}
if(da[x][y]=='.')
{
return;
}else
{
sum++;
da[x][y]='.';
dfs(x,y-1);
dfs(x-1,y);
dfs(x+1,y);
dfs(x,y+1);
}
return;
}
int main()
{
jg=0;
cin>>m>>n;
for(int i=0;i<n;i++)
{
string ts;
ts.clear();
cin>>ts;
for(int j=0;j<m;j++)
{
da[j][i]=ts[j];
}
}
/*
cout<<endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<da[j][i];
}
cout<<endl;
}
*/
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
sum=0;
dfs(j,i);
jg=max(jg,sum);
}
}
/*
cout<<endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<da[j][i];
}
cout<<endl;
}
*/
cout<<jg<<endl;
return 0;
}
POJ 3051 Satellite Photographs G++ dfs
于 2017-07-19 21:20:56 首次发布