把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

P5609 [Ynoi2013] 对数据结构的爱

题面传送门

好像搞了个神秘做法。

考虑离线扫描线,用一个 fhq-Treap 维护所有的询问现在长什么样,然后每次操作就整体加 AiAipp 的减去 pp,这个可以分裂之后打整体标记,然后用那个值域相交的 fhq-Treap 合并实现。

然后你发现这样就过了。

构造一下卡不掉,于是考虑给这个东西编一个势能。

设现在 fhq-Treap 维护的东西为 aa 序列,定其势能为 n1i=1log(ai+1ai)n1i=1log(ai+1ai),容易发现的是总势能不会超过O(mlogV)O(mlogV),因此我们来考虑减少一个势能的代价。

fhq-Treap 可以在连续段个数乘以 loglog 的时间复杂度内合并两个值域相交的集合,这里连续段指的是合并完之后极长连续的一段满足来自同一边。我们考虑一个最简单的情形,假设其中一个集合为 a1,a2,a3a1,a2,a3,另一个集合为 b1,b2b1,b2,合并后为 a1,b1,a2,b2,a3a1,b1,a2,b2,a3

原来的势能为 log(a2a1)+log(a3a2)+log(b2b1)log(a2a1)+log(a3a2)+log(b2b1)。考虑 min(log(a2b1),log(b2a2))log(b2a2)1min(log(a2b1),log(b2a2))log(b2a2)1,并且 log(b1a1)log(a2a1),log(a3b2)log(a3a2)log(b1a1)log(a2a1),log(a3b2)log(a3a2),所以总势能至多增加 O(logn)1O(logn)1

进一步容易用上面的方法证明,如果最终连续段的个数为 SS,则总势能至多增加 O(logV)14SO(logV)14S,所以总复杂度 O(nlogn+mlogmlogV)O(nlogn+mlogmlogV)

这玩意的劣势在于其复杂度是 O(logV)O(logV) 而不是 O(logm)O(logm)(说不定能证明势能是 O(logm)O(logm) 的),但是优势在于可以对每个点设不同的 pp。因为常数比较大需要卡卡常。

submission

posted @   275307894a  阅读(77)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
历史上的今天:
2023-03-05 luogu P8367 [LNOI2022] 盒
浏览器标题切换
浏览器标题切换end
点击右上角即可分享
微信分享提示