Lilliput Steps

小さな一歩から着実に. 数学やプログラミングのことを書きます.

幅優先探索

Codeforces 342E - Xenia and Tree

問題文 : Xenia and Tree概要 : 大きさ$n$ の木が与えられる. 最初頂点0 は赤色で, その他の頂点は青色である. 次の$m$ 個のクエリに答えよ :・頂点$v$ の色を赤色に変える. ・頂点$v$ から赤色のノードまでの最短距離を求める.$1 \leqq n,\ m \leqq 10^5$

JOI 春合宿 2012-day3 Sokoban

問題文 : 倉庫番解法 : 「倉庫番の逆」を考える. すなわち, 目標地点から箱を引っ張りまわすBFS を考える. 箱の置き方がO(MN) 個, 隣接する頂点がたかだか4 個であるため, 状態数はO(MN) である.各状態に遷移したら, 答えには連結成分の大きさを足してやれば…

AOJ 2412 - Village

問題文 : 村解法 : Rによってブロック分けをする. 近傍の8ブロックを1つのグループとみなして, このグループの数を幅優先探索で求める. setを使っているので, O(NlogN)時間で探索を終えることが出来る.コード : #include <cstdio> #include <cmath> #include <set> using namespa</set></cmath></cstdio>…