记录编号 |
114266 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
[入门经典] 黑白图像 |
最终得分 |
100 |
用户昵称 |
Bokjan |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.101 s |
提交时间 |
2014-07-28 13:15:02 |
内存使用 |
0.78 MiB |
显示代码纯文本
#include <fstream>
#include <cstring>
const int BOUND = 700 + 2;
bool g[BOUND][BOUND];
void dfs(int x, int y)
{
if(!g[x][y])
return;
g[x][y] = false;
dfs(x - 1, y - 1); dfs(x - 1, y); dfs(x - 1, y + 1);
dfs(x, y - 1); /*THIS*/ dfs(x, y + 1);
dfs(x + 1, y - 1); dfs(x + 1, y); dfs(x + 1, y + 1);
}
int main(void)
{
std::ifstream fin("common.in");
std::ofstream fout("common.out");
int n, ans = 0;
fin>>n;
memset(g, 0, sizeof(g));
for(int i = 1; i <= n; i++)
{
char row[BOUND];
fin>>row;
for(int j = 1; j <= n; j++)
if('1' == row[j - 1])
g[i][j] = true;
}
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
if(g[i][j])
{
ans++;
dfs(i, j);
}
fout<<ans<<std::endl;
fin.close();
fout.close();
return 0;
}