区间取min线段树的一种奇妙势能分析

这里写图片描述

比如这题
设势函数=每个点所管区间内互异值的个数总和
一开始势能最大nlogn
操作1使得势能最多增加logn
操作2我们这样处理:每个点记录一下最大值和次大值,若x大于最大值退掉,若x在最大值与次大值之间则打一个tag,若x小于次大值则递归下去。
可以发现,每次递归下去时势函数都至少减1,这时我们要花费向下走左右子树,共2的时间。

那么,总的时间复杂度就控制在了势函数最大值(n+m) log n上。
但是题解的分析是n log^2 n的,不知道这个奇妙的分析方法有没有问题。

猜你喜欢

转载自blog.csdn.net/jokerwyt/article/details/79793560