• noj-1102-黑白图像


     

      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 ", ans);
    47         }
    48         return 0;
    49 }
  • 相关阅读:
    觅踪8
    觅踪7
    团队开发进度报告1
    团队计划会议
    团队nabcd卡片制作及小组讨论
    团队项目NABCD
    软件需求分析
    团队电梯演讲视频
    团队开篇博客
    团队简介
  • 原文地址:https://www.cnblogs.com/angle-qqs/p/4070245.html
Copyright © 2020-2023  润新知