主席树
信仰..
学无止境
展开
-
HDU 2665-Kth number(主席树)
题意:给你n个数,然后m次询问,每次询问区间[l,r]第k小的数是多少 题解:一般做法,每次将询问的区间存起来然后排序求解,这样复杂度是n^2log(n),太暴力了,呢我们怎么做呢,这里便是采用一种常用姿势(学会之前并不觉得常用),主席树来搞(其实树状数组也能瞎搞搞),既然是第一次搞主席树,呢我就粗略的描述一下,主席树,很多人叫做可持久化线段树,顾名思义就是可以保存之前的状态和更新当前状态,其实原创 2017-08-29 16:01:23 · 593 阅读 · 0 评论 -
HDU 4417-Super Mario(主席树)
题意:n个数,m次查询,问你任意区间中比x小的数的个数 题解:之前用离线树状数组搞得,学了主席树决定主席树搞搞,问题可以转化为x为区间第几小。 然而wa上一晚上,本以为是主席树理解错了,打算重学,后来发现是一个地方1打成了L。。。呵呵 #include #include #include #include原创 2017-09-07 10:35:16 · 371 阅读 · 0 评论 -
ZOJ 2112-Dynamic Rankings (树状数组+主席树)
题意:给你n个数,m次操作: Q x y z表示查询区间[x,y]中第z小的数是多少; C x y 表示将第x个位置上的数替换成y; 题解:和http://blog.csdn.net/haut_ykc/article/details/77678882 一样,只是多了修改操作; 要知道每次修改某一个位置上的数都会影响后边的所有线段树,假如暴力更新的话必然会超时。 我们可以考虑用树状数组,原创 2017-08-30 23:16:05 · 717 阅读 · 0 评论 -
HDU 5919-Sequence II(主席树)
题意:给你个长为n的序列,m次查询,每次查询该区间中所有种类的数在该区间中第一次出现的位置的中位数是多少(比较绕) 题解:主席树模板题,很容易想到其实就是找该区间中有多少种数的变形,因为要找每个数在该区间中第一次出现的位置,所以有个技巧是倒着插入主席树,每插入一个值,将当前数位置的贡献值+1,将之前已经出现过的该数的位置上的贡献值-1即可。 #include #include #include原创 2017-10-30 22:10:28 · 384 阅读 · 0 评论