题目大意
你有
- 0号树
T0 只有一个点,标号为0 - 对于第
i 棵树Ti(i>0) ,它通过拷贝第Ai 和Bi 棵树,并将对应原树上的Ci 号和Di 号节点链接一条Li 的边得到。并且新树上原本属于Bi 节点的节点标号都加上了sizeAi 。
现在要求你计算每一棵树的这个值
其中
分析
不难发现最坏情况下,
我们先想一下如果我们要计算一棵树的答案需要知道些什么,很自然可以想到从这棵树的构成出发。它等于
后一部分显然等于
考虑到每棵树上直接需要查询
那么依照前面的思路,我们拆成两棵树来分别维护这些关键点的
那么新的问题就出现了,我们还有维护关键点之间的
最终的时间复杂度