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 }
  • 相关阅读:
    POJ 3468 A Simple Problem with Integers
    BZOJ 4430 Guessing Camels
    POJ 2309 BST
    POJ 1990 MooFest
    cf 822B Crossword solving
    cf B. Black Square
    cf 828 A. Restaurant Tables
    Codefroces 822C Hacker, pack your bags!
    [HDU 2255] 奔小康赚大钱
    [BZOJ 1735] Muddy Fields
  • 原文地址:https://www.cnblogs.com/aze-003/p/5140274.html
Copyright © 2011-2022 走看看