记录编号 219242 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 [入门经典] 黑白图像 最终得分 100
用户昵称 Gravatar哒哒哒哒哒! 是否通过 通过
代码语言 C++ 运行时间 0.221 s
提交时间 2016-01-13 17:27:32 内存使用 2.68 MiB
显示代码纯文本
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<queue>
#include<vector>
#include<cstring>

using namespace std;

const int maxn=705;
char pic[maxn][maxn];
int m,idx[maxn][maxn];

void dfs(int r,int c,int id)
{
    if(r<0 || r>=m || c<0 || c>=m)    return;
    if(idx[r][c]>0 || pic[r][c]!='1')   return;
    idx[r][c]=id;
    for(int dr=-1;dr<=1;dr++)
		for(int dc=-1;dc<=1;dc++)
		    if(dr!=0 || dc!= 0) dfs(r+dr,c+dc,id);
}
int work()
{
	memset(idx,0,sizeof(idx));
	scanf("%d",&m);
	for(int i=0;i<m;i++)    scanf("%s",pic[i]);
	int cnt=0;
	for(int i=0;i<m;i++)
	    for(int j=0;j<m;j++)
	        if(idx[i][j]==0 && pic[i][j]=='1')
				dfs(i,j,++cnt);
	printf("%d\n",cnt);
}

int main()
{
	freopen("common.in","r",stdin);
	freopen("common.out","w",stdout);
	work();
	//system("pause");
	return 0;
}