D - S老师的虚树
值得一提的是如何求这个 a i a_i ai,可以考虑按dfs序考虑同一种边,运用树状数组即可统计(注意不要加重了,不需要打区间覆盖,这样可以不用打线段树)
F(i, 1, n) {ll sz = d[i].size() - 1;if (sz < 0) continue;total ++;F(j, 0, sz) {ll k = d[i][j], sz = sum(DFN[k]) - sum(dfn[k] - 1);a[sz] ++;add(dfn[k], - sz), g.pb({dfn[k], sz});}a[sum(n)] ++;sz = g.size() - 1;F(j, 0, sz) add(g[j].x, g[j].y);g.clear();
}