中规中矩的虚树写法 不难发现,只有同一深度的松鼠才会打架。 那就easy了啊,把同一深度的所有点拎出来,建一棵虚树,合并一下,就好了。 对于一个点,记表示到达该点的松鼠数量,那么 其中表示在原树上的深度。这个方程应该很好理解吧(雾。 然后每次把答案加上就好了(注意要满足先)。 复杂度:瓶颈在求lca上 代码: #include<bits/stdc++.h> #define int long long #define MAXN 200010 using namespace std; int n,s,A[MAXN],head[MAXN],tot,deep[MAXN],pre[MAXN]...