P3320 [SDOI2015]寻宝游戏

Solution

我们可以发现, 两点最近是走dfs序最近的路线
所以我们可以维护一个按照dfs序排序的序列
因为每次只有一个增/减操作,
增加的话我们就答案先减去前驱到后继的距离, 再把前驱到点 点到后继的距离加上
同理删除的话先减去前驱到点、点到后继,再加上前驱到后继距离
用Treap维护即可

posted @ 2021-04-21 16:51  Tony_Double_Sky  阅读(55)  评论(0编辑  收藏  举报