dfs序
最菜的acmer
这个作者很懒,什么都没留下…
展开
-
codeforces838B-Diverging Directions
题解:先dfs序给这些树结点重新编号,然后就可以搞成线段树 L[x]表示这个结点的开头R[x]这个结点的结尾然后中间这些编号就是这个结点所以的叶子结点的编号,然后用线段树维护从根结点到达这些区间内的结点再直接回到根结点的最短距离。 更新的话,如果是更新直接到的结点那么只要把他的两个端点更新一下即可否则就是这条边的子结点所包括的区间更新 查询的话根据y是不是x 的子节点然后查询方式即可 如果y原创 2017-08-08 22:02:23 · 510 阅读 · 0 评论 -
hdu5405(dfs序+树链剖分+线段树)
题解:因为我要查询有多少,i到j的路径上有与u到v路径上的公共点,那么我们可以先求没有经过u到v路径的上点的平方的总和然后再用所有点权值的总和的平方减去他,那么就是答案。然后我们怎么操作能?因为用树链剖分的话不会经过的点的对应的轻儿子的结点,所以我们记录一些对应轻儿子的权值平方的总和,然后我们如果某链往另外一条链上跳的话说明我这个点是那个点的轻链,我们再补回去就好了,然后还有一种情况是我重儿子没有...原创 2018-07-18 10:49:35 · 314 阅读 · 0 评论