主席树
twh233
嘻嘻
展开
-
poj 2104 主席树first blood
就不贴传送门了。 搜一下就能知道。就贴一个卿学姐的视频传送门2333 传送门这个代码1.8S过的#include #include #include #include #include #include #include #include #include #include #include #include #include #include #i原创 2017-06-11 19:53:11 · 192 阅读 · 0 评论 -
hdu 4417 Super Mario 二分+主席树第K小
题目链接题意:n个数 m个询问 (n、m≤105n、m≤105)每个询问有l, r, k 问的是[l, r]区间内有多少个数小于等于k 用主席树做的话查询第i小的数与k比较即可 /// .-~~~~~~~~~-._ _.-~~~~~~~~~-./// __.' ~. ....原创 2018-11-03 15:25:04 · 119 阅读 · 0 评论 -
ZOJ - 2112 动态单点修改主席树
题目链接参考博客:https://www.cnblogs.com/Empress/p/4659824.html题意:n个数,q个询问 (n<=50000, q<=10000)Q x y z 代表询问[x, y]区间里的第z小的数C x y 代表将(从左往右数)第x个数变成y 对于更新, 我们不改变这些已经建好的树, 而是另建一批树S,用来记录更新,而...原创 2018-10-30 12:26:47 · 337 阅读 · 0 评论 -
2018六校联合周赛上学期第二场 seventh的平面 (主席树)
题目链接 这题当询问是一条平行于y轴的直线的时候,大家应该都会做,只要知道有多少条平行x轴的线段经过询问的那个点就行了。这个题询问的是线段,不是直线,所以要对平行与x轴的线段建立主席树就行了,为了方便AC,这题离散化都不用写,直接拿主席树拍上去就能过了。 /// .-~~~~~~~~~-._ _.-~~~~~~~~~-./// ...原创 2018-10-24 22:20:43 · 150 阅读 · 0 评论 -
Count on a tree 树上 (u,v)的路上的第K小的权值(主席树+树剖lca
题目链接题目大意: 就是求在树上 (u,v)的路上的第K小的权值解题思路: 首先对于求第K小的问题 我们可以用主席树搞 ,没有问题, 但是对于一个树形结构,我们需要将其转化为线性,然后需要树剖才能做.然后考虑链上的第k值怎么维护 , 发现如果树剖计算的话 维护不了啊 因为(u,v)的路 可能在很多个链上,那么不能对每个求第K值,这样明显是错误的啊,然后我们知道主席树其实就...原创 2018-10-28 13:51:51 · 339 阅读 · 0 评论 -
2554. [福利]可持久化线段树 单点修改
https://syzoj.com/problem/247Q k l r 查询数列在第k个版本时,区间[l, r]上的最大值M k p v 把数列在第k个版本时的第p个数修改为v,并产生一个新的数列版本/// .-~~~~~~~~~-._ _.-~~~~~~~~~-./// __.'原创 2017-12-11 15:12:56 · 315 阅读 · 0 评论 -
AC的故事大结局悲剧版(下) 主席树模板,区间修改
http://120.78.128.11/Problem.jsp?pid=2507 现有m个操作,分三类: A:l 到r 营地在新的一天里新增士兵k名(随后时间从t 现在变成t+1了) B:问第i天 l 到r 营地共有士兵几名。 C:时间倒流到x天 。(厉害了。。。)/// .-~~~~~~~~~-原创 2017-12-11 14:35:48 · 545 阅读 · 0 评论 -
FJUT 3097(hdu 3333) 区间种类数 主席树+在线
http://120.78.128.11/Problem.jsp?pid=3097对每个位置建一棵主席树,每颗树记录的区间信息为[1~n]位置上的不重复权值和(第k大主席树记录的是值域,和这里不同)。从左往右建树,这样rt[i]树表示[1~i]所有不同值之和,然后和上面一样把重复出现的值的位置劲量往右移,当出现过a[i]时先删除rt[i-1]中对应位置的a[i]再把它加入到当前树中的i原创 2017-11-22 00:32:19 · 528 阅读 · 0 评论 -
Codeforces 813E Army Creation 主席树(在线,求[l,r]内比x大的数的个数)
点击打开链接题意:n个数a[i],q次询问,n,a[i],q每次问[l,r]内最多可以选多少个数,满足同一个数的出现次数不超过k?设b[i] 从i开始数k个和a[i]相同的数的位置,不存在设为n+1;则[l,r] 只要b[i]>r的数都能可以被选上,转化为求区间[l,r]内有多少个数>=r题目要求在线 所以套用主席树 建立权值线段树,前缀i内,第[l,r]大的数原创 2017-06-12 15:32:18 · 828 阅读 · 0 评论 -
hdu 4348 To the moon 历史的区间和
题意:n个数, m个操作1. C l r d 给[l, r]区间的每个数加上d2. Q l r: 查询[l, r]区间的和3. H l r t: 查询第t个操作时[l, r]区间的和4. B t: 回到第t个操作之后 因为有查询历史的区间和,故用主席树(保留了历史)区间更新直接更新到每个子节点即可 #define lson l, m#define rson...原创 2018-11-05 12:36:50 · 336 阅读 · 0 评论