pub fn auxiliary_tree(
nodes: &[usize],
inv_ord: &[usize],
lca: &LowestCommonAncestor,
) -> (usize, HashMap<usize, Vec<usize>>)Expand description
auxiliary tree です。
§計算量
hash map のコストは無視する。
グラフの頂点数を n, nodes.len() を k として、O(klogn + klogk)
§引数
nodes: {0, 1, …, n - 1} の部分集合inv_ord: pre-order (行きがけ順) の列の添字と値を反対にしたもの- 頂点
iは行きがけ順でinv_ord[i]番目に現われる
- 頂点
lca: 2頂点の LCA を得る.get(u, v)を実装した構造体
§返り値
(root, g)
g.contains_key(&i): 頂点iが圧縮後の木に含まれて、子のリストがg[&i]である!g.contains_key(&i): 頂点iが圧縮後の木に含まれない