![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
主席树
UniverseofHK
事情留在今天,时间送给明天
展开
-
K-th occurrence 2019CCPC网络赛+HDU6704(后缀自动机+主席树)
K-th occurrence 之前网络赛跟队友合体出的题,当时我写的后缀自动机,他写的主席树,hhh! 现在我会写主席树,他会写后缀数组,于是各自独立的A了!并且我跟之前网络赛时的解法还不完全一样 巨佬队友bxd的后缀数组+主席树解法 题意: 给定一个串SSS,有QQQ个询问:求子串S[l,r]S[l,r]S[l,r]在SSS中的第kkk次出现位置。 思路: 由于后缀自动机可以知道某个子串的e...原创 2019-11-05 21:30:46 · 303 阅读 · 0 评论 -
主席树
主席树 主席树静态区间第k小板子 //#pragma comment(linker, "/STACK:102400000,102400000") #include "bits/stdc++.h" #define pb push_back #define ls l,m,now<<1 #define rs m+1,r,now<<1|1 #define rt 1,n,1 #def...原创 2019-08-26 20:39:29 · 85 阅读 · 0 评论 -
粟粟的书架(主席树+二维前缀和)
粟粟的书架 一下子做了两个题? 题意:一个问题求区间前K大的和,另一个问题求矩形内前K大的和。 思路: 前一个问题直接上主席树+二分搞定 后一个问题由于数据范围比较小,用cnt[i][j][k]cnt[i][j][k]cnt[i][j][k]记录前缀矩形中大于等于kkk的数有多少个,用pre[i][j][k]pre[i][j][k]pre[i][j][k]记录前缀矩形中大于等于kkk的数的和。利...原创 2019-09-05 10:18:37 · 139 阅读 · 0 评论 -
森林(树上主席树+启发式合并)
森林 题意:有两种操作: 1. 将某两个点连起来(连边后保证为森林或者一棵树) 2. 询问两点之间路径上第K小权值(强制在线且保证询问合法) 思路:树上主席树+启发式合并 先离散化一下还是有必要的 连边后分别在每一棵树上建立主席树,每一棵树上的每一个节点的主席树维护从所在的树根到当前节点路径上的权值 合并的过程用比较小的树合并大比较大的树上 求解询问的关键:s=sz[L[x]]+sz[L[y]]...原创 2019-09-05 20:55:40 · 231 阅读 · 0 评论 -
任务查询系统(主席树的差分性质)
任务查询系统 题意:区间修改(修改区间每个位置某个数的数量,注意每个位置有多个数)+单点查询前K小的权值和+强制在线 思路: 由于主席树运用了前缀和思想,每个位置保存了所有权值的前缀和;因此若此题的区间修改利用差分思想,则主席树的每个位置恰好就维护的是自身位置(差分与前缀和相互抵消了),也就是不必手动求前缀和了。 这样我们就只需要离散化一下,然后利用差分思想处理所有的修改 而主席树部分跟普通主席...原创 2019-09-06 18:32:32 · 205 阅读 · 0 评论 -
超级钢琴(主席树+贪心+优先队列)
超级钢琴 我能说这是主席树板子题嘛? 题意:给定一个序列,求长度在LLL与RRR内的前KKK大子串和。 思路: 既然有子串,肯定要先搞个前缀和,离散化之类的 然后我们建好主席树 而主要的思路在于贪心,我们可以枚举子串的左端点,然后在其合法的右端点中通过主席树找到最大的右端点(子串满足前缀和关系,每个右端点都会减去这个相同的左端点的前一个值) 把枚举得到的所有最大子串都放进优先队列中(维护左端点+...原创 2019-09-18 16:13:25 · 226 阅读 · 0 评论