记录编号 336244 评测结果 WWWWWWWWWW
题目名称 家族 最终得分 0
用户昵称 GravatarHzoi_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);
}