色々な解法が考えられますが,基本的には問題の内容をきちんと実装すれば解くことができます.
問題原案:@uni_kakurenbo
例によってアルゴリズム自体の詳細な解説は他サイト様へ委ねます.
実装例-1 [C++]
しかし,幅優先探索を知らなくても,次のように実装することでこの問題は解けます.
本質は幅優先探索に変わりありません.
(詳細はコメントを参照してください.)
実装例-2 [C++]
Union-Find というデータ構造を用いることでも正答することができます. こちらも,データ構造自体の詳細な解説は他サイト様へ委ねます.
一度爆発したものを再度カウントしてしまわないように注意しましょう.
想定解-3 [C++]
(難易度順)
上記を参照してください.
Ex を見て真っ先に Explosion という単語を入れようと決意しました.
結果的にいつぞやの D に似てしまいましたがご容赦を..