オイラーツアーをすると、木に対する計算から区間の計算に言い換えができる。
区間の話にできると、例えばセグ木などのツールが使える。
オイラーツアーには、頂点に注目したものと、辺に注目したものの2種類がある。
(tour, in, out)
を計算する。
tour
: ある種の DFS 訪問順in[v]
: 頂点 v を最初に通った時刻out[v]
: 頂点 vを最後に通った時刻 (出ていった時刻にするケースもある)tour[in[v]..=out[v]]
: 頂点 v
を根に持つ部分木tour[0..=in[v]]
: 根 0
から 頂点 v
までのパス(遠回りしてる可能性もある)tour[in[u]..=in[v]]
: 2つの頂点 u, v
を含む部分木 (in[u] <= in[v]
の場合)
出ていった時刻を考える場合は in[v]..out[v]
のような区間を考えることになる。