记录编号 30797 评测结果 AAAAA
题目名称 细胞个数 最终得分 100
用户昵称 GravatarTruth.Cirno 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2011-10-31 14:28:31 内存使用 0.27 MiB
显示代码纯文本
#include <cstdio>
using namespace std;

const int RUL[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int m,n;
char map[100][101];

void bfs(int x,int y)
{
	int i,tx,ty,tail=0,head=0,quex[10000],quey[10000];
	map[x][y]='0';
	quex[0]=x;
	quey[0]=y;
	while (tail<=head)
	{
		for (i=0;i<=3;i++)
		{
			tx=RUL[i][0]+quex[tail];
			ty=RUL[i][1]+quey[tail];
			if (tx>=0&&tx<m&&ty>=0&&ty<n&&map[tx][ty]!='0')
			{
				head++;
				map[tx][ty]='0';
				quex[head]=tx;
				quey[head]=ty;
			}
		}
		tail++;
	}
}

int main(void)
{
	freopen("cellnum.in","r",stdin);
	freopen("cellnum.out","w",stdout);
	int i,j,c=0;
	scanf("%d %d\n",&m,&n);
	for (i=0;i<m;i++)
		scanf("%s\n",&map[i]);
	for (i=0;i<m;i++)
		for (j=0;j<n;j++)
			if (map[i][j]!='0')
			{
				bfs(i,j);
				c++;
			}
	printf("%d\n",c);
	fclose(stdin);
	fclose(stdout);
	return(0);
}