记录编号 |
219242 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
[入门经典] 黑白图像 |
最终得分 |
100 |
用户昵称 |
哒哒哒哒哒! |
是否通过 |
通过 |
代码语言 |
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;
}