这道题和3620基本上是一样的,记得当是我做3620的时候,收获真是大啊,不过现在只能用水题来形容这道3051了,呵呵。
要让更多的题目成为水题,这也是我的目标;
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
char input[2000][2000];
int val[2000][2000];
int num;
void dfs(int x,int y)
{
if(val[x][y]==0)
return;
else if(val[x][y]==1)
{
val[x][y]=0;
num++;
dfs(x,y+1);
dfs(x+1,y);
dfs(x,y-1);
dfs(x-1,y);
}
}
int main ()
{
int w,h;
int i,j;
char temp;
int max=0;
num=0;
scanf("%d%d",&w,&h);
cin.ignore();
for(i=1;i<=h;i++)
{
for(j=1;j<=w;j++)
{
cin>>temp;
if(temp=='*')
val[i][j]=1;
else
val[i][j]=0;
}
}
for(i=1;i<=h;i++)
{
for(j=1;j<=w;j++)
{
num=0;
dfs(i,j);
if(num>max)
max=num;
}
}
printf("%d\n",max);
return 0;
}