• POJ 2386


     1 #include<iostream>
     2 #include<stdio.h>
     3 #define MAXN 105
     4 using namespace std;
     5 
     6 char _m[MAXN][MAXN];
     7 bool mark[MAXN][MAXN];
     8 int r;
     9 int c;
    10 void is_connect(int i,int j);
    11 int main()
    12 {
    13     //freopen("acm.acm","r",stdin);
    14     int i;
    15     int j;
    16     int num = 0;
    17     cin>>r>>c;
    18     for(i = 0; i < r; ++ i)
    19     {
    20         for(j = 0; j < c; ++ j)
    21         {
    22             cin>>_m[i][j];
    23         }
    24     }
    25 
    26     //for(i = 0; i < r; ++ i)
    27     //{
    28     //    for(j = 0; j < c; ++ j)
    29     //        cout<<_m[i][j];
    30     //    cout<<endl;
    31     //}
    32 
    33     for(i = 0; i < MAXN; ++ i)
    34     {
    35         for(j = 0; j < MAXN; ++ j)
    36         {
    37             
    38             if(_m[i][j] == 'W' && !mark[i][j])
    39             {
    40                 ++ num;
    41                 mark[i][j] = true;
    42                 is_connect(i,j);
    43             }
    44         }
    45     }
    46     cout<<num<<endl;
    47         
    48 }
    49 
    50 void is_connect(int i,int j)
    51 {
    52     if(i > 0 && !mark[i-1][j] && _m[i-1][j] == 'W')
    53     {
    54         mark[i-1][j] = true;
    55         is_connect(i-1,j);        
    56     }
    57     if(i < r-1 && !mark[i+1][j] && _m[i+1][j] == 'W')
    58     {
    59         mark[i+1][j] = true;
    60         is_connect(i+1,j);
    61     }
    62     if(j > 0 && !mark[i][j-1] && _m[i][j-1] == 'W')
    63     {
    64         mark[i][j-1] = true;
    65         is_connect(i,j-1);
    66     }
    67     if(j < c-1 && !mark[i][j+1] && _m[i][j+1] == 'W')
    68     {
    69         mark[i][j+1] = true;
    70         is_connect(i,j+1);
    71     }
    72     if(i > 0 && j > 0 && !mark[i-1][j-1] && _m[i-1][j-1] == 'W')
    73     {
    74         mark[i-1][j-1] = true;
    75         is_connect(i-1,j-1);
    76     }
    77     if(i > 0 && j < c-1 && !mark[i-1][j+1] && _m[i-1][j+1] == 'W')
    78     {
    79         mark[i-1][j+1] = true;
    80         is_connect(i-1,j+1);
    81     }
    82     if(i < r-1 && j > 0 && !mark[i+1][j-1] && _m[i+1][j-1] == 'W')
    83     {
    84         mark[i+1][j-1] = true;
    85         is_connect(i+1,j-1);
    86     }
    87     if(i < r-1 && j < c-1 && !mark[i+1][j+1] && _m[i+1][j+1] == 'W')
    88     {
    89         mark[i+1][j+1] = true;
    90         is_connect(i+1,j+1);
    91     }
    92 }
  • 相关阅读:
    Large-Margin Softmax Loss for Convolutional Neural Networks
    Selective Kernel Network
    A Discriminative Feature Learning Approach for Deep Face Recognition
    recurrent model for visual attention
    rethinking imageNet pre-training
    字符串格式化输出
    HeatMap
    Numpy 多维数组简介
    浅谈JVM(下)
    java线程池总结
  • 原文地址:https://www.cnblogs.com/gavinsp/p/4568386.html
Copyright © 2020-2023  润新知