BZOJ 3991 Sdoi2015 寻宝游戏

题解:

一道比较经典的题目

首先这题要动态维护虚树 然后这样多计算的就是lca最大点---根的距离

而lca最大点就是dfs序最小的和dfs序最大的lca

然而动态维护虚树我并不会

所以一个比较常用的做法是

按照dfs序排列,然后通过自己与lca来维护一下东西

这道题里显然是sigm(dis[a[i]])-sigma(dis[lca(a[i-1],a[i])])

然后要动态维护这个东西显然搞个set维护一下dfs序就可以了

 

posted @ 2018-06-03 15:55  尹吴潇  阅读(80)  评论(0编辑  收藏  举报