主席树
Coco_T_
东南大学本科毕业生,浙江大学在读研究生
展开
-
主席树
原谅博主太蒟。。。实在讲不明白 http://www.cnblogs.com/zyf0163/p/4749042.html(讲得很好O(∩_∩)O~)在粘模板之前,先进行一下简单的解释: 我们先 sort(a+1,a+1+n,cmp); 这是为什么呢~ 其实,我们在构建线段树时,按照排序进行添加, rank[i]是i元素在原始队列里的位置,添加第i个,就在rank[i]的位置上++,原创 2017-05-31 07:33:50 · 257 阅读 · 0 评论 -
bzoj3772 精神污染(dfs序+主席树)
Description兵库县位于日本列岛的中央位置,北临日本海,南面濑户内海直通太平洋,中央部位是森林和山地,与拥有关西机场的大阪府比邻而居,是关西地区面积最大的县,是集经济和文化于一体的一大地区,是日本西部门户,海陆空交通设施发达。濑户内海沿岸气候温暖,多晴天,有日本少见的贸易良港神户港所在的神户市和曾是豪族城邑“城下町”的姬路市等大城市,还有以疗养地而闻名的六甲山地等。兵库县官方也大力发展旅...原创 2018-02-13 10:38:58 · 306 阅读 · 0 评论 -
bzoj2653 middle(主席树+二分)
题目链接分析: 可以发现所有满足条件的中位数是具有单调性的 也就是说,如果M'<MM′<MM′MMM为合法的中位数,那么M'M′M′也为合法的中位数 那么我们就可以考虑二分答案了根据题目中对中位数的定义: 如果序列长度为奇数,中位数即为最中间的那个数, 如果序列长度为偶数,那么中位数为中间的两个数更靠后的那个数假设我们已经二分出答案mid,现在要判定M是否为合法的...原创 2018-02-11 17:50:44 · 286 阅读 · 0 评论 -
bzoj4448 [Scoi2015]情报传递(树链剖分+主席树)
题目链接分析: 树上路径问题,显然可以链剖看完题的我,大脑中浮现的想法↓: 对于每一个修改,在按照树链剖分建立的线段树上单点修改 记录这个点是什么时刻进行的修改 之后在询问的时候,我们只需查找区间内有多少时间戳小于等于“当前时刻-C-1”的结点即可 那么我们就可在线段树里套一个权值平衡树 这道题的题解:树链剖分+线段树+平衡树我的MA呀,不觉得神烦吗???实际上我们的问...原创 2018-02-10 21:23:27 · 315 阅读 · 0 评论 -
bzoj4539 [Hnoi2016]树(缩点+主席树+LCA【待完善)
题目链接分析: 从学姐blog中扒出来的一道神题小范围数据的暴力非常的显然,然而MLE和TLE不是我们的重点一开始就想到把需要插入的子树直接视为一个点 加上原树,我们得到的就是一个有m+1个结点的重构树最初的模板树缩成一点,作为大树的根结点 我们考虑插入一个子树 子树加入时会重新标号,但是大小顺序是不变的 所以一个结点代表的子树的结点编号一定是一段连续的区间 我们可以通...原创 2018-04-08 12:29:35 · 309 阅读 · 0 评论 -
bzoj1803 Spoj1487 Query on a tree III
DescriptionYou are given a node-labeled rooted tree with n nodes. Define the query (x, k): Find the node whose label is k-th largest in the subtree of the node x. Assume no two nodes have the same l...原创 2018-02-10 08:30:21 · 213 阅读 · 0 评论 -
bzoj3524 [Poi2014]Couriers(主席树)
Description给一个长度为n的序列a。1≤a[i]≤n。m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2。如果存在,输出这个数,否则输出0。Input第一行两个数n,m。第二行n个数,a[i]。接下来m行,每行两个数l,r,表示询问[l,r]这个区间。Outputm行,每行对应一个答案。Samp...原创 2018-02-09 20:36:55 · 263 阅读 · 0 评论 -
bzoj1901 Zju2112 Dynamic Rankings(可修改主席树)
Description给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是多少(1≤k≤j-i+1),并且,你可以改变一些a[i]的值,改变后,程序还能针对改变后的a继续回答上面的问题。Input第一行有两个正整数n(1≤n≤10000),m(1≤m≤10000)。分原创 2017-12-26 17:40:26 · 612 阅读 · 0 评论 -
可修改主席树
前言:这个就是传说中的树套树。。。主席树首先我们先简单的复习一下主席树(我的主席树入门): 主席数实际上就是一种权值线段树 ta能解决的一个经典问题就是区间第K大(后来知道也可以用整体二分解决)给定一个长度为n的序列,询问区间第K大 我们建了n棵权值线段树,每一棵线段树维护序列1~i的信息 查询的时候,计算区间元素个数t,与k比较,之后继续向左右结点查找建树过程: 可修改 给定原创 2017-12-25 17:45:30 · 1406 阅读 · 0 评论 -
hdu2665 Kth number(主席树模板)
Problem Description Give you a sequence and ask you the kth big number of a inteval.Input The first line is the number of the test cases. For each test case, the first line contain two integer n an原创 2017-08-27 19:54:02 · 330 阅读 · 0 评论 -
luoguP3834 【模板】可持久化线段树 1(主席树)
题目背景这是个非常经典的主席树入门题——静态区间第K小数据已经过加强,请使用主席树。同时请注意常数优化题目描述如题,给定N个正整数构成的序列,将对于指定的闭区间查询其区间内的第K小值。输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示序列的长度和查询的个数。 第二行包含N个正整数,表示这个序列各项的数字。 接下来M行每行包含三个整数 l, r, kl,r,k , 表示查询区间[l,原创 2017-09-11 14:16:33 · 238 阅读 · 0 评论 -
bzoj2588 Spoj 10628. Count on a tree
Description给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。Input第一行两个整数N,M。 第二行有N个整数,其中第i个整数表示点i的权值。 后面N-1行每行两个整数(x,y),表示点x到点y有一条边。 最后M行每行两个整数(原创 2017-08-28 09:19:03 · 260 阅读 · 0 评论 -
luoguP3168 [CQOI2015]任务查询系统
题目描述最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分。超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei秒后结束(第Si秒和Ei秒任务也在运行),其优先级为Pi。同一时间可能有多个任务同时执行,它们的优先级可能相同,也可能不同。调度系统会经常向查询系统询问,第Xi秒正在运行的任务中,优先级最小的Ki个任务(原创 2017-08-27 18:27:41 · 331 阅读 · 0 评论 -
bzoj3551 [ONTAK2010]Peaks加强版(Kruskal重构树+主席树)
Description在Bytemountains有N座山峰,每座山峰有他的高度h_i。有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走,现在有Q组询问,每组询问询问从点v开始只经过困难值小于等于x的路径所能到达的山峰中第k高的山峰,如果无解输出-1。Input第一行三个数N,M,Q。 第二行N个数,第i个数为h_i 接下来M行,每行3个数a b c,表示从a到原创 2017-08-26 16:04:58 · 359 阅读 · 0 评论 -
曲神的hu测 T1.FaQ(可持久化Trie)
版权属于yhzq,想要引用此题(包括题面)的朋友请联系博主 分析: 原创题,题面真的。。。感觉对不起博弈。。。yy了一种很科学的做法:首先,我们把这些字符串扔到一棵TrieTrieTrie上 那么两个字符串的lcplcplcp就是这两个字符串ededed结点在TrieTrieTrie上的lcalcalca的深度 不明白?参考一下这道题(顺便帮我刷刷访问量)我...原创 2018-03-31 17:09:45 · 212 阅读 · 0 评论