poj 3051 Satellite Photographs

#include<iostream>        //bfs
#include<deque>
#include
<string>
using namespace std;
int w,h,m,s,visited[1005][85];
char str[1005][85];
deque
<int> col;
void bfs(int i,int j)
{
while(!col.empty())
{
int i=col.front()/10000,j=col.front()%10000;
col.pop_front();
s
++;
if(i-1>=0&&str[i-1][j]=='*'&&visited[i-1][j]==0)
col.push_back((i
-1)*10000+j),visited[i-1][j]=1;

if(i+1<h&&str[i+1][j]=='*'&&visited[i+1][j]==0)
col.push_back((i
+1)*10000+j),visited[i+1][j]=1;

if(j-1>=0&&str[i][j-1]=='*'&&visited[i][j-1]==0)
col.push_back(i
*10000+j-1),visited[i][j-1]=1;

if(j+1<w&&str[i][j+1]=='*'&&visited[i][j+1]==0)
col.push_back(i
*10000+j+1),visited[i][j+1]=1;
}
}
int main()
{
scanf(
"%d%d",&w,&h);
for(int i=0;i<h;++i)
scanf(
"%s",str[i]);
for(int i=0;i<h;++i)
for(int j=0;j<w;++j)
{
if(str[i][j]=='.'||visited[i][j]==1)
continue;
col.clear();
s
=0;
col.push_back(i
*10000+j);
visited[i][j]
=1;
bfs(i,j);
m
=max(m,s);
}
printf(
"%d\n",m);
return 0;
}

  

posted on 2011-07-22 19:54  sysu_mjc  阅读(119)  评论(0编辑  收藏  举报

导航