【BZOJ 1901】【Zju 2112】 Dynamic Rankings 动态K值 树状数组套主席树模板题

达神题解传送门:http://blog.csdn.net/dad3zz/article/details/50638360


说一下我对这个模板的理解:

看到这个方法很容易不知所措,因为动态K值需要套树状数组,而我一开始根本不知道该怎么套,,

学习吧,,,

然后我自己脑补如果不套会如何?后来想到是查询O(logn),修改是O(nlogn),很明显修改的复杂度太大了,为了降低修改的复杂度,我们只得套上树状数组来维护前缀和使它的n的复杂度降低为logn,从而修改的复杂度变为O(log2n)。但因为我们套了树状数组,所以查询的复杂度也不得不上升到O(log2n),但从整体上看来这些牺牲是值得的,总复杂度最终是O(nlog2n)。

这些都太简单了是吧,,果然我太傻,,

比较的时候和普通的主席树不同,不再是两个做差了,而是把树状数组中的节点放到两个池子里做差,我的code里是L和R两个池子,,

至于为什么要离线,我思考了很久,,,问过达神,,,并不理解,,,继续思考,,,后来明白是为了找到所有序列中出现的数的最大值,这样才能建树啊,,,然后得出结论:我太傻以至于马上就要滚粗了,,,TAT

最后向iwtwiioi寻求帮助,知道自己错误的原因是数组开的太小了,,

达神也帮我开大过,不过貌似太大炸了导致每次都是TLE或WA,,

还是得注意细节啊,这道题一个晚上才写出了模板,我果然太弱了。

然后就可以了。这是DaD3zZ几年前就随手虐的东西,本蒟蒻还得继续努力呀~~~

posted @   abclzr  阅读(757)  评论(1编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示