這道題和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;
}
