爆発させ爆弾(メートルニンニクオフ)

 

 

 

1の#include <iostreamの>
 2の#include <キュー>
 3の#include <アルゴリズム>
 4  使用して 名前空間をSTD。
5  チャーマップ[ 505 ] [ 505 ]。
6  INT VIS [ 505 ] [ 505 ]。
7  構造体ノード{
 8      int型のX;
9      INT Y。
10      ノード(int型のx、int型のY)
 11      {
 12           - > X = X。
13           - > Y = Y。
14      }
 15  }。
16  整数N、M。
17  のint main()の
 18  {
 19  
20      CIN >> N >> M。
21      のためにINT iは= 1 ; iが<= N; ++ I)
 22          のためのINT J = 1 ; J <= M; ++ j)の
 23          {
 24              CIN >> マップ[I] [J]。
25          }
 26      int型のカウント= 0 ;
27      のためのint型 I = 1; I <= N; ++ I)
 28          のためのINT J = 1 ; J <= M; ++ j)の
 29          {
 30              であれば(マップ[I] [J] == ' 1 ' && VIS [I] [J ] == 0 31              {
 32                  カウント++ 33                  キュー<ノード> Q。
34                  最初のノード= ノード(i、j)は、
35                  q.push(最初の);
36                  VIS [I] [J] == 1 37                  しばらく(!q.empty())
 38                 {
 39                      ノード今= q.front()。
40                      INT X = now.x。
41                      のint yは= now.y。
42                      のためのint型のk = 1 ; K <= N ++ K)
 43                      {
 44                          であれば(地図[K] [Y] == ' 1 ' && VIS [K] [Y] == 0 45                          {
 46                             Q。プッシュ(ノード(K、Y))。
47                             VIS [K] [Y] = 1 48                          }
49                      }
 50                      のためのint型のk = 1 ; K <= M + K)
 51                      {
 52                          であれば(地図[X] [K] == ' 1 ' && VIS [X] [K] == 0 53                          {
 54                              q.push(ノード(X、K))。
55                              VIS [X] [K] = 1 56                          }
 57                      }
 58                      q.pop()。
59                  }
 60              }
61          }
 62          COUT << 数えます。
63          リターン 0 ;
64 }

 

おすすめ

転載: www.cnblogs.com/caxi/p/12517840.html