zoukankan      html  css  js  c++  java
  • uva 469

    题目:给你一个矩阵和某些点,找到给的点所处连续的W区域的面积(八个方向)。

    分析:搜索。floodfill算法,利用搜索直接求解就可以了。

    说明:注意读入数据的格式。

     1 #include <cstdio>
     2 #include <cstring>
     3 using namespace std;
     4 
     5 char map[105][105], used[105][105];
     6 int ans;
     7 void dfs(int x, int y)
     8 {
     9     if(x < 0 || y < 0 || map[x][y] == 0)
    10         return;
    11     if(used[x][y] != 0 || map[x][y] != 'W')
    12         return;
    13 
    14     used[x][y] = 1;
    15     ans ++;
    16     int i, j;
    17     for (i = -1; i <= 1; i++)
    18         for (j = -1; j <= 1; j++)
    19             dfs(x+i, y+j);
    20 }
    21 
    22 int main()
    23 {
    24     int t, i, j;
    25     char str[105];
    26     scanf("%d ", &t);
    27     while(t--)
    28     {
    29         memset(map, 0, sizeof(map));
    30         int n = 0;
    31         while(gets(str))
    32         {
    33             if(str[0] == '')
    34                 break;
    35             if(str[0] != 'W' && str[0] != 'L')
    36             {
    37                 sscanf(str, "%d %d", &i, &j);
    38                 memset(used, 0, sizeof(used));
    39                 ans = 0;
    40                 dfs(i-1, j-1);
    41                 printf("%d
    ", ans);
    42             }
    43             else{
    44                 sscanf(str, "%s", map[n++]);
    45             }
    46         }
    47         if(t)
    48             puts("");
    49     }
    50     return 0;
    51 }
  • 相关阅读:
    安卓学习57
    安卓学习56
    安卓学习55
    安卓学习54
    安卓学习53
    安卓学习52
    安卓学习51
    安卓学习50
    安卓学习49
    安卓学习48
  • 原文地址:https://www.cnblogs.com/aze-003/p/5140274.html
Copyright © 2011-2022 走看看