| 8 | HLD_naive(int _n) : n(_n), adj(n), parent(n, ii(-1, ID)) { } |
| 9 | |
| 10 | void add_edge(int u, int v) { |
| 11 | adj[u].push_back(ii(v, ID)); |
| 12 | adj[v].push_back(ii(u, ID)); |
| 13 | parent[v] = ii(u, ID); |
| 14 | } |
| 15 | |
| 16 | void update_cost(int u, int v, int c) { |
| 17 | if (parent[v].first == u) |