Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void dfs_sz(int v = 0) {
- sz[v] = 1;
- for(auto &u: g[v]) {
- dfs_sz(u);
- sz[v] += sz[u];
- if(sz[u] > sz[g[v][0]]) {
- swap(u, g[v][0]);
- }
- }
- }
- void dfs_hld(int v = 0) {
- in[v] = t++;
- for(auto u: g[v]) {
- nxt[u] = (u == g[v][0] ? nxt[v] : u);
- dfs_hld(u);
- }
- out[v] = t;
- }
- https://codeforces.com/blog/entry/53170
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement