- 送给圣诞夜的极光
- 2017-05-20 21:52:00 @
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
queue<int>x,y;
int n,m,s,wx[13]={0,0,0,-1,1,0,0,-2,2,-1,1,-1,1},wy[13]={0,1,-1,0,0,2,-2,0,0,1,1,-1,-1};
bool map[110][110];
int main()
{
//freopen("P1051.in","r",stdin);
//freopen("P1051.out","w",stdout);
cin>>n>>m;
char a;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a;
if(a=='#')
map[i][j]=true;
}
scanf("\n");
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(map[i][j])
{
y.push(i);
x.push(j);
s++;
while(1)
{
int X=x.front(),Y=y.front();
map[Y][X]=false;
for(int k=1;k<=12;k++)
if(X+wx[k]>0 && X+wx[k]<=m && Y+wy[k]>0 && Y+wy[k]<=n && map[Y+wy[k]][X+wx[k]])
{
y.push(Y+wy[k]);
x.push(X+wx[k]);
}
x.pop();
y.pop();
if(x.empty())
break;
}
j++;
}
cout<<s;
return 0;
}
真实案例……
(懒得手打队列……)
1 条评论
-
唐复之 LV 8 @ 2017-05-20 21:52:42
貌似内存也会爆
- 1