这道题和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;
}
