主席树
文章平均质量分 80
霜刃未曾试
这个作者很懒,什么都没留下…
展开
-
POJ 2104 K-th Number 主席树模板题
题目:http://poj.org/problem?id=2104题意:给定一个长度为n的无序数组,然后有m组询问l r k,求区间[l,r]中的第k大数思路:以前用划分树做过,现在学习主席树,模板题。个人对主席树的理解:就是把线段树更新过程中所有的历史状态记录下来,例如更新m次的话,那么就会有m种状态,直接建m棵线段树的话,时间和空间都不允许,于是用了一些很巧妙的思想,因为更新线段树某个原创 2016-09-02 15:36:48 · 727 阅读 · 0 评论 -
SPOJ DQUERY D-query 主席树
题目:http://www.spoj.com/problems/DQUERY/en/题意:给定一个数组,每次询问一个区间内不同元素的个数思路:看的别人的思路。对于一个数,如果以前没出现过就插入到主席树中否则就删除以前那个。再插入主席树。注意,所有的更新和删除都是建立了新的节点来保持其历史状态的。。对于T[i]我们存的是从1到i区间的不同的数出现了多少个。然后这棵树是根据T[i - 1]来建原创 2016-09-03 15:16:26 · 872 阅读 · 0 评论 -
HDU 2852 KiKi's K-Number 主席树
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2852题意:维护一个数据结构,有三种操作:0 e代表把e加入到数据结构中,1 e代表把e从数据结构中删除,2 a k代表求数据结构中大于a的第k大数思路:用主席树可做。对于前两种操作,就是主席树中增删节点,都通过新建节点来完成,对于第三种操作,可以求出小于等于a的个数cnt,可以用树状数组来维护小于原创 2016-09-30 19:02:46 · 630 阅读 · 0 评论 -
HDU 4348 To the moon 主席树 + 区间更新
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4348题意:给定长度为n的数组,有四种操作:C l r d把[l, r]内的元素全部加上d并把时间计数器加1,Q l r查询[l, r]内元素的和,H l r t查询t时刻[l, r]内元素的和,B t返回时刻t(保证只向前而不向后跳)思路:跳回之前的某个状态,明显是可持久化数据结构,这题就是明显的原创 2016-10-01 20:32:13 · 1073 阅读 · 0 评论 -
HDU 3727 Jewel 主席树简单题
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3727题意:有一个空链,现有如下几种操作:Insert x 把数x插入链中(从右端插入)Query_1 s t k 查询链上区间[s, t]内的第k小值Query_2 x 查询x在链上是第几小Query_3 k 查询整条链上的第k小值思路:首先把所有操作存下来,把要插入的数据离散化,原创 2016-10-02 10:21:55 · 523 阅读 · 0 评论 -
SPOJ COT Count on a tree 树上第k大(主席树)
题意:http://www.spoj.com/problems/COT/en/题意:给定一棵树,树上每个节点都有一个权值,问两点之间路径上第K大值思路:树上的第k大值,跟区间第k大有些不同,区间第k大每个值在前一个值的基础上新建一棵树,而树上第k大则是在父亲节点的基础上新建一棵树。查询的时候,答案就是root[v] + root[u] - root[lca(v, u)] - root[fa原创 2016-10-02 15:57:28 · 1842 阅读 · 0 评论 -
POJ 2761 Feed the dogs 主席树(区间第k大)
题目:http://poj.org/problem?id=2761题意:求区间第k大数,很裸思路:很裸的主席树#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 100100;int root[N], lson[N*20], r原创 2016-10-30 21:50:13 · 399 阅读 · 0 评论 -
bzoj 3932 [CQOI2015]任务查询系统 主席树
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3932题意:Description 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分。超级计算机中的 任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei秒后结束(第Si秒和Ei秒任务也在运行 ),其优先级为Pi。同一原创 2017-09-27 20:58:38 · 327 阅读 · 0 评论