码迷,mamicode.com
首页 > 其他好文 > 详细

noj-1102-黑白图像

时间:2014-11-03 00:01:48      阅读:373      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   for   sp   div   

 

  1 //题目地址:http://acm.njupt.edu.cn/acmhome/problemdetail.do?method=showdetail&id=1102

 2 //解题思路:遍历每个格子dfs访问当前格子的相领黑格
 3 #include <stdio.h>
 4 #include <string.h>
 5 
 6 #define MAXN 1000
 7 
 8 int mat[MAXN][MAXN], vis[MAXN][MAXN];
 9 
10 void DFS(int x, int y){
11         int i;
12         if(mat[x][y]  == 0|| vis[x][y] == 1return ;    //曾经访问过这个格子,或者当前格子为空
13         vis[x][y] = 1;  //标记(x, y)已访问过
14         //递归访问周围的8个格子
15          DFS(x, y + 1);
16         DFS(x, y - 1);
17         DFS(x + 1, y - 1);
18         DFS(x + 1, y + 1);
19         DFS(x - 1, y + 1);
20         DFS(x - 1, y - 1);
21         DFS(x + 1, y);
22         DFS(x - 1, y);
23 }
24 
25 int main(){
26         int n, i, j, ans;;
27         char s[MAXN];
28         while(scanf("%d", &n) != EOF){
29                 memset(mat, 0sizeof(mat));       //所有格子都初始化为白色,包括周围一圈的虚拟格子
30                 memset(vis, 0sizeof(vis));            //所有各自都没有访问过
31                 for(i = 0; i < n; i++){
32                         scanf("%s", s);
33                         for(j = 0; j < n; j++){
34                                 mat[i + 1][j + 1] = s[j] - 0;//把图像往中间移动一格,空出一圈白格子
35                         }
36                 }
37                 ans = 0;
38                 for(i = 1; i <= n; i++){
39                         for(j = 1; j <= n; j++){
40                                 if(vis[i][j] == 0 && mat[i][j] == 1){
41                                         DFS(i, j);  //找到所有未访问过的黑格
42                                         ans++;
43                                 }
44                         }
45                 }
46                 printf("%d\n", ans);
47         }
48         return 0;
49 }

noj-1102-黑白图像

标签:style   blog   http   io   color   ar   for   sp   div   

原文地址:http://www.cnblogs.com/angle-qqs/p/4070245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!