主席树
Wolf_Reiser
这个作者很懒,什么都没留下…
展开
-
HDU4417 Super Mario 主席树 / 树状数组
给出n个数,m个询问,每次查询在[L,R]中≤x的数有多少个.在线做的话是主席树模板了离线做将查询按位置先后排序逐个向树状数组中插入数,并回答询问(类似查询逆序对)最后再按时间排回来都需要离散化.因为是小于等于,二分的时候要upper_bound.坑死了多组数据初始化坑爹啊。。主席树#include#include#include#include#def原创 2017-12-12 22:49:39 · 327 阅读 · 0 评论 -
BZOJ3524 [Poi2014]Couriers 主席树(模板)
给一个长度为n的序列a。1≤a[i]≤n。 m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2。 显然出现次数超过一半的数最多只有1个 建出主席树,在树上二分查找即可/************************************************************** Problem: 3524 ...原创 2018-03-07 09:47:39 · 287 阅读 · 0 评论 -
BZOJ3932 [CQOI2015]任务查询系统 主席树+差分
给出M个任务,Q个查询,第ii个任务从第sis_i秒开始,到第tit_i秒结束,优先级为pip_i.时间范围是N.要求支持查询[sj,tj][s_j,t_j]时间段内优先级最小的K个任务,查询强制在线。 M,N,Q<=100000. 注意到时间范围不大,因此对每个任务在时间上进行差分 主席树上每个节点存储当前时间的这一段的sizesize和离散前的权值和sumsum,每次在第X颗主席树上查询前原创 2018-03-07 10:21:15 · 301 阅读 · 0 评论 -
BZOJ1901 Dynamic Rankings 带修改主席树(模板)
给出一个数列,要求支持区间查询第K小和单点修改。 因为不强制在线,先将修改操作和原数列一起离散化 建树方式更改为使用树状数组维护前缀和,主席树只记录这一个位置的sizesize. 修改时要在logn\log n个节点上同时修改 查询时同时累加logn\log n个节点的sizesize,每一层记录一下logn\log n个节点的左右节点对应位置 最后在树上二分计算答案原创 2018-03-07 10:47:14 · 283 阅读 · 0 评论 -
BZOJ2588: Count on a tree 树上主席树
给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u和v这两个节点间第K小的点权,强制在线。N,M<=100000 边DFS边建出主席树,这样每次建出的树存储的都是该节点到根的sizesize前缀和 这样每次在rt[u]+rt[v]−rt[lca]−rt[fa[lca]]rt[u]+rt[v]-rt[lca]-rt[fa[lca]]四棵树上查询即可原创 2018-03-07 11:02:26 · 335 阅读 · 0 评论