![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
主席树
主席树
王江奎
这个作者很懒,什么都没留下…
展开
-
主席树入门
今天学习了一下主席树(这个这么强的名字好像是因为提出这个的人的名字简写和我们胡性主席相同?八卦一下)虽然直接理解起来不容易,但是这种解决问题的思想其实并不陌生。我们可以首先来看维护整个区间第K大的线段树我们将[l,r]区间内数字的多少用线段树进行维护,这样的话为了求取区间第k大,我们先看左区间有多少个数字,如果左区间就有多于K的数字(或者等于K个),我们直接去左区间找,如果左区间没有K个,我...原创 2019-07-27 16:33:40 · 158 阅读 · 0 评论 -
HDU - 4348To the moon——主席树+区间修改
HDU - 4348To the moon【题目描述】【题目分析】题目中说明每次更新后时间都会加1,而且还会需要查询以前的区间,还会需要返回以前的时间,所以是很裸的主席树。区间查询的话我们同样需要用到lazy标记通过这道题我发现线段树的操作还是很灵活的借鉴大佬的代码【AC代码】#include<cstdio>#include<cstring>#inclu...原创 2019-07-29 15:19:28 · 193 阅读 · 0 评论 -
HDU - 6278 Just $h$-index主席树+二分
HDU - 6278 Just hhh-index【题目描述】【题目分析】题目要求在区间[l,r][l,r][l,r]内大于h的数不少于h个,对于这种最大化问题,我们应该想到二分。最小情况显然是1.最大情况显然是r−l+1r-l+1r−l+1,对于一个hhh,我们如何判断能否满足条件呢?我们可以用主席树方便的求出区间第h大,如果区间第h大大于等于h,那么就能满足条件比较伤心的是我虽然...原创 2019-07-30 09:52:28 · 247 阅读 · 3 评论 -
HDU - 5919 Sequence II——主席树+区间种类++逆序建树
【题目描述】HDU - 5919 Sequence II【题目分析】题目给定一个数组,每次查询一个区间,找出区间内不同数字的个数x,然后输出按出现顺序第x/2向上取整个数字的位置。按照要求,我们首先需要能够找出给定区间不同的数字个数。首先,我们分析一个简单一些的问题:对于右端点固定的区间,如何计算不同左区间内不同数字的个数。我们不妨用一个数组记录cntcntcnt哪些位置出现了一个...原创 2019-07-30 16:17:48 · 193 阅读 · 0 评论 -
HDU - 6621 K-th Closest Distance——主席树+二分
【题目描述】HDU - 6621 K-th Closest Distance【题目分析】因为看到第kkk大的要求,刚开始的时候一直都在想怎么运用第kkk大来解决问题,但是后来看其他人的博客才发现并不需要用第k大,但是主席树维护权值线段树还是需要的,这样可以方便的求出某一区间内数的个数。题目要求的∣q−ai∣|q-ai|∣q−ai∣中第kkk大的,我们可以尝试使用二分,只不过需要进行转化。我...原创 2019-08-10 16:20:40 · 126 阅读 · 0 评论