幅優先探索
問題文 : Xenia and Tree概要 : 大きさ$n$ の木が与えられる. 最初頂点0 は赤色で, その他の頂点は青色である. 次の$m$ 個のクエリに答えよ :・頂点$v$ の色を赤色に変える. ・頂点$v$ から赤色のノードまでの最短距離を求める.$1 \leqq n,\ m \leqq 10^5$
問題文 : 倉庫番解法 : 「倉庫番の逆」を考える. すなわち, 目標地点から箱を引っ張りまわすBFS を考える. 箱の置き方がO(MN) 個, 隣接する頂点がたかだか4 個であるため, 状態数はO(MN) である.各状態に遷移したら, 答えには連結成分の大きさを足してやれば…
問題文 : 村解法 : Rによってブロック分けをする. 近傍の8ブロックを1つのグループとみなして, このグループの数を幅優先探索で求める. setを使っているので, O(NlogN)時間で探索を終えることが出来る.コード : #include <cstdio> #include <cmath> #include <set> using namespa</set></cmath></cstdio>…