上下界取min/max的线段树问题:P8518 [IOI2021] 分糖果

本文搬运自本人高中时期CSDN博客,若图片加载不出来,可到原文查看:https://blog.csdn.net/zhangtingxiqwq/article/details/135070831

https://www.luogu.com.cn/problem/P8518

没有要求在线,显然离线(。维护时间戳,上线段树。

好了,我们现在知道一个人的曲线变化了。怎么做呢?

前面所有碰上下界的都是没用的!我们只需要找最后一段的时间段满足差值为 cic_i 即可。因为差值更大的我们显然可以最后又会规约成这种情况。

关于差值的维护,我们维护后缀min/max,然后线段树上二分即可

在这里插入图片描述