记录编号 |
336244 |
评测结果 |
WWWWWWWWWW |
题目名称 |
家族 |
最终得分 |
0 |
用户昵称 |
Hzoi_Go灬Fire |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
0.007 s |
提交时间 |
2016-11-03 06:18:10 |
内存使用 |
0.51 MiB |
显示代码纯文本
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<iostream>
#include<queue>
using namespace std;
#define LL long long
#define Begin freopen("family.in","r",stdin);freopen("family.out","w",stdout);
#define End fclose(stdin);fclose(stdout);
const int maxn=205;
const int dx[5]={0,0,1,-1};
const int dy[5]={1,-1,0,0};
struct Node{
int x,y;
Node(){};
Node(int a,int b){x=a;y=b;}
};
int n,m;
int g[maxn][maxn],ans=0;
bool vis[maxn][maxn];
queue<Node> q;
void Init();
void Bfs(int a,int b){
while(!q.empty()){
Node temp=q.front();q.pop();
for(int i=0;i<4;i++){
int xx=temp.x+dx[i],yy=temp.y+dy[i];
if(vis[xx][yy] || xx<1 || xx>n || yy<1 || yy>m || g[xx][yy])continue;
vis[xx][yy]=1;q.push(Node(xx,yy));
}
}
}
int main(){
Begin;
Init();
getchar();getchar();
// for(;;);
End;
return 0;
}
void Init(){
memset(g,0,sizeof(g));memset(vis,0,sizeof(vis));ans=0;
scanf("%d",&n);
int zhi=0;getchar();
for(int i=1;i<=n;i++){
char ch;zhi=0;
while(ch=getchar(),ch!='\n'){
zhi++;
if(ch=='*' || ch==' ')g[i][zhi]=1;
}
m=zhi;
}
//for(int i=1;i<=n;i++)
// for(int j=1;j<=m;j++)printf("%d",g[i][j]);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(!vis[i][j] && !g[i][j]){
while(!q.empty())q.pop();
q.push(Node(i,j));vis[i][j]=1;
ans++;Bfs(i,j);
}
}
}
printf("%d\n",ans);
}