池カウント

問題の意味

N *土地のmは、各点が「W」である雨のビデオを含む、「」フリー雨を表し、各点考え通信周りの8点、

前記全て池、総数取得池を構成する接続

n∈[1,1000]

m∈[1,1000]

説明

すべての点の数は、DFSスタックを破裂するように、BFSと便利でスキップして他の国境を越えた操作でき、1E6有します

1の#include <ビット/ STDC ++ H>
 2  の#define PII対<整数、整数>
 3  の#define X第
 4  の#define第2のY
 5  使って 名前空間STDを、
6  CONST  INT N = 1E3 + 10 7  チャーG [N]、[N]。
8  ブール値ST [N] [N]。
9  整数N、M。
10の ボイド BFS(INT SX、INT SY){
 11      キュー<PII> Q。
12      q.push({SX、SY})。
13      ST [SX] [SY] = ;
14  
15      ながら(q.size()){
 16          PII T = q.front()。
17          q.pop()。
18          のためにINT I = TX- 1 ; I <= t.x + 1 ; I ++ 19              のためのINT J = ty- 1 ; J <= t.y + 1、J ++ ){
 20                  であれば(私は== TX && J == TY)続けます21                  もし(I < 0 || I> = N || J < 0 || J> = M)続けます22                  であれば(G [I] [J] == '"続けます23                  もし(ST [i] [j]は)継続;
24                  q.push({I、J})。
25                  ST [i]は[J] = ;
26              }
 27      }
 28  }
 29  INT メイン(){
 30の      IOS :: sync_with_stdio(0 )。
31      cin.tie(0 )。
32      CIN >> N >> M。
33      のためにINT iが= 0 ; iが<N; I ++ 34          CIN >>G [i]は、
35      INT CNT = 0 36      のためにINTは iは= 0 ; I <N I ++ 37          のためのINT J = 0 ; J <mであり、j ++ ){
 38の             場合(G [i]は[J] == ' W '!&& ST [I] [J]){
 39の                 BFS(i、j)は、
40                  CNT ++ ;
41              }
 42          }
 43      COUT << CNT << ENDL。
44 }

 

おすすめ

転載: www.cnblogs.com/hhyx/p/12571610.html