随笔分类 -  数据结构-主席树

【BZOJ3545&BZOJ3551】Peaks(kruskal重构树,主席树,dfs序)
摘要:题意:在Bytemountains有N座山峰,每座山峰有他的高度h_i。 有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走, 现在有Q组询问,每组询问询问从点v开始只经过困难值小于等于x的路径所能到达的山峰中第k高的山峰,如果无解输出-1。 N<=10^5, M,Q 阅读全文

posted @ 2019-12-10 23:19 myx12345 阅读(220) 评论(0) 推荐(0)

【HDOJ6621】K-th Closest Distance(主席树,二分)
摘要:题意:给定一个长为n的序列,有m次强制在线的询问,每次询问位置【L,R】中abs(a[i]-p)第k小的值 n,m<=1e5,a[i]<=1e6,p<=1e6,k<=169 思路:主席树外面套个二分 阅读全文

posted @ 2019-10-09 20:17 myx12345 阅读(146) 评论(0) 推荐(0)

【HDOJ6601】Keen On Everything But Triangle(主席树)
摘要:题意:给定一个长为n的序列,有q次询问,每次询问[l,r]这段区间内挑三个数,能组成的三角形的最大周长,无解输出-1 n,q<=1e5,a[i]<=1e9 思路:题解写法和我的不太一样 先说题解做法,显然最坏情况下是斐波那契数列的形式,大概是log2(1e9)项就没有-1了,所以维护一个可以取某一段 阅读全文

posted @ 2019-09-25 14:00 myx12345 阅读(143) 评论(0) 推荐(0)

【BZOJ4504&&Hihocoder1046】K个串(主席树,堆)
摘要:题意:一个长度为n的数字序列,选出其中的一个连续子串,然后统计其子串中所有数字之和(注意这里重复出现的数字只被统计一次)询问第k大的和是多少 1 <= n <= 100000, 1 <= k <= 200000, 0 <= a[i]<= 10^9 思路:类似于超级钢琴的思路 对于每一个右端点建立一棵 阅读全文

posted @ 2018-10-29 22:35 myx12345 阅读(189) 评论(0) 推荐(0)

【ZOJ4053】Couleur(主席树,set,启发式)
摘要:题意: 有n个位置,每个位置上的数字是a[i],现在有强制在线的若干个单点删除操作,每次删除的位置都不同,要求每次删除之后求出最大的连续区间逆序对个数 n<=1e5,1<=a[i]<=n 思路: 对于每次删除操作我们可以考虑被删除的数字的贡献 比如区间[l,r]内删除了x这个位置,被分成了[l,x- 阅读全文

posted @ 2018-09-25 18:38 myx12345 阅读(209) 评论(0) 推荐(0)

【ZJOI2017 Round2练习&BZOJ4826】D1T2 sf(主席树,单调栈)
摘要:题意: 思路:From http://blog.csdn.net/neither_nor/article/details/70211150 对每个点i,单调栈求出左边和右边第一个大于i的位置,记为l[i]和r[i] 那么(l[i],r[i])会产生p1的贡献 左端点为l[i],右端点在[i+1,r- 阅读全文

posted @ 2017-04-19 10:10 myx12345 阅读(159) 评论(0) 推荐(0)

【ZJOI2017 Round1练习&BZOJ4765】D1T3 普通计算姬(主席树,分块)
摘要:题意: 思路:分块 使用树状数组维护sum[i]的前缀和 使用主席树维护root到u的路径上点的编号出现的个数 每次操作如果是修改就加入队列 如果是询问,考虑块内操作对询问的影响,每次在x点加上y会使x到root的点sum都加上y 每根号n次操作就暴力重构一次,清空队列并求出新的sum[i]的前缀和 阅读全文

posted @ 2017-03-02 18:15 myx12345 阅读(215) 评论(0) 推荐(0)

【BZOJ3932】任务查询系统(主席树)
摘要:题意:若干有优先级的任务会持续一段时间,给出所有任务,询问每个时刻前k小优先级任务的优先级总和,询问强制在线。 对于100%的数据,1≤m,n,Si,Ei,Ci≤100000,0≤Ai,Bi≤100000,1≤Pi≤10000000,Xi为1到n的一个排列 思路:不用离散化,主席树继承并保存每个时刻 阅读全文

posted @ 2017-02-24 14:05 myx12345 阅读(195) 评论(0) 推荐(0)

【BZOJ2653】middle(主席树,二分)
摘要:题意:一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整。 给你一个长度为n的序列s。 回答Q个这样的询问:s的左端点在[a,b]之间,右端点在[c,d]之间的子序列中,最大的中位数。 其中a<b<c<d。 位置也从0开始标号。 我会使用一些方式 阅读全文

posted @ 2017-01-18 21:16 myx12345 阅读(197) 评论(0) 推荐(0)

【BZOJ2874】训练士兵(主席树)
摘要:题意:有一个N*M的矩阵,给出一些形如(x1,y1,x2,y2,s)的操作,代表(x1,y1)到(x2,y2)都被加上了s这个数 现在有一些强制在线的询问,询问(x1,y1)到(x2,y2)的和 对于100%的数据 n,m<=10^8,k<=40000,q<=100000; 思路:将操作(x1,y1 阅读全文

posted @ 2017-01-05 19:28 myx12345 阅读(364) 评论(0) 推荐(0)

【BZOJ3123】森林(主席树,启发式合并)
摘要:题意:一个带点权的森林,要求维护以下操作: 1.询问路径上的点权K大值 2.两点之间连边 n,m<=80000 思路:如果树的结构不发生变化只需要维护DFS序 现在因为树的结构发生变化,要将两棵树合并,这步可以用启发式合并,将比较小的树暴力连接到较大的树上面 离线的LCA算法无法维护,而倍增可以合并 阅读全文

posted @ 2017-01-02 18:47 myx12345 阅读(199) 评论(0) 推荐(0)

【Tyvj1601】魔兽争霸(主席树,树套树)
摘要:题意:要求在N个数的序列中支持以下操作: 1:将第X个元素加上Y 2:询问当前K大值 n<=30000,m<=50000 思路:树状数组套主席树 Tyvj又炸了,还不知道对不对 阅读全文

posted @ 2016-12-21 18:10 myx12345 阅读(245) 评论(0) 推荐(0)

【Tyvj2133&BZOJ1146】网络管理Network(树套树,DFS序,树状数组,主席树,树上差分)
摘要:题意:有一棵N个点的树,每个点有一个点权a[i],要求在线实现以下操作: 1:将X号点的点权修改为Y 2:查询X到Y的路径上第K大的点权 n,q<=80000 a[i]<=10^8 思路:此题明显地体现了我对主席树理解不深 树上路径K大可以直接用树剖+二分答案+树做 但DFS序+主席树也可以 对于点 阅读全文

posted @ 2016-12-12 19:55 myx12345 阅读(385) 评论(0) 推荐(0)

【BZOJ1901】Dynamic Rankings(树套树,树状数组,主席树)
摘要:题意:给定一个N个数的序列,要求维护一个数据结构支持以下两种操作: 1:将第X个数改成Y 2:查询第X到第Y个数里第K小的数是多少 n,m<=10000,a[i]<=10^9 思路:单点修改版本的主席树 对于没有修改的主席树,我们直接在对应的节点上每个点继承上个点的状态,再用链表创建logn个点来表 阅读全文

posted @ 2016-12-09 20:34 myx12345 阅读(334) 评论(0) 推荐(0)

【BZOJ3524】Couriers(主席树)
摘要:题意:给一个长度为n的序列a。1≤a[i]≤n。m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2。如果存在,输出这个数,否则输出0。 n,m≤500000 思路:这题可以用主席树巧妙地做 询问(x,y)区间时直接输出a[query(x,y)] 首先区 阅读全文

posted @ 2016-12-04 20:24 myx12345 阅读(197) 评论(0) 推荐(0)

【POJ2104】K-th Number(主席树)
摘要:题意:有n个数组成的序列,要求维护数据结构支持在线的下列两种操作: 1:单点修改,将第x个数修改成y 2:区间查询,询问从第x个数到第y个之间第K大的数 n<=100000,a[i]<=10^9 思路:一年前写过的第一道主席树,现在有了更深的理解 最朴素的想法是设t[i,j]为i时刻[1..j]的个 阅读全文

posted @ 2016-12-04 16:06 myx12345 阅读(194) 评论(0) 推荐(0)

导航