![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
可持久化线段树
alan_cty
蒟蒻一只
别打脸(⊙o⊙)哦
展开
-
[GDOI模拟2016.03.05]魔道研究
Description 给出T个集合,和m个操作,一开始所有集合皆为空。每个操作有两种形式,一是在t集合里加入一个元素x,一种是在t集合里删除一个元素x(保证x存在)。然后从每个集合t中选出前t大的元素加入另一个大集合s中,求s中的前n大元素和。 m,n,t≤300000,所有元素都为不大于109的正整数。Solution 很明显的数据结构题,关键是要如何维护。想到区间前k大,马上就原创 2016-03-07 18:38:55 · 925 阅读 · 0 评论 -
[十二省联考2019]希望
Description给出一棵树,定义两个点的距离为其路径上的边数。问有多少种选择k个有序连通子图的方案,满足存在一个点u,其在所有子图内,且子图中的所有点到其的距离<=Ln<=10^6Solution考虑枚举点u,问题变成有多少个连通子图到u的距离<=L且包含u但是这样会算重所以我们要减去u和u父亲都被包含设F[x][i]表示以x为根的子树内,到x距离<=i...原创 2019-04-11 08:37:41 · 793 阅读 · 0 评论 -
[UOJ#395][NOI2018]你的名字
Description给出字符串S,每次询问字符串T有多少本质不同的子串不是S[l…r]的子串|S|,|T|<=10^5Solution我太菜了考场68分都写挂了_ (:з」∠) _其实这道题并没有看上去那么难预处理出lim[i]表示T的前缀i的最长后缀,满足T[i-lim[i]+1,i]是S的子串考虑询问是1~n的情况,我们只需要在S的SAM上跑就可以得出这个东西如果询问是...原创 2018-10-24 09:22:36 · 792 阅读 · 1 评论 -
[51nod2004]终结之时
Description“将世界终结前最后的画面,深深刻印进死水般的心海.” 祈愿没有得到回应,雷声冲破云霄,正在祈愿的洛天依受到了极大的打击。 洛天依叹了口气,说:”看来这个世界正如我之前所说的一样,早已失去一切生机” 你沉默了下来,没有说什么话,只是静静地坐在洛天依的身旁,一同观赏这末日之景. 天空被云朵覆盖,一朵具有强大能量的云映入你们的眼帘,这是始云!是抽取世界能量的最重要的一朵云!但原创 2018-03-06 16:58:06 · 265 阅读 · 0 评论 -
【NOI2018模拟3.10】子序列
Description求一个序列的所有2^n-1个子序列的字典序前k小的哈希值。 n,k<=1e5Solution这道题专门狙杀我这种老年菜鸡 我们考虑一种从旧的子序列扩展出新的子序列的方法。 对于一个子序列,我们肯定是找到它后面第一个比它小的位置来扩展。 我们把一样的子序列放在一起考虑,维护所有的结束位置。 然后我们枚举所有可能的更新位置,暴力判断哪些子序列可以用这些位置进行更新。 这原创 2018-03-10 16:30:56 · 228 阅读 · 0 评论 -
【清华集训模拟】树
Description给出一棵n个点的树,每个点有点权a[i] 求把这棵树划分成若干条不相交的路径,使得每条路径上的点权和均非负的方案数。 n<=1e5Solution先考虑Dp怎么写,设Fx表示以x为根的子树已经覆盖完成了. 转移两条链,把这两条链上挂着的F值乘起来就是答案。 那么这个东西要如何用数据结构优化? 我们以权值为下标建立线段树,线段树里的每个点维护的是其到当前所做的根x路径上原创 2018-01-19 22:37:36 · 304 阅读 · 0 评论 -
[CF862F]Mahmoud and Ehab and the final stage
Description给出n个字符串s[i],资瓷两种操作: 1 a b 询问所有[a,b]的子区间[l,r]中LCP(l,r)*(r-l+1)的最大值。 其中LCP(l,r)表示s[l]~s[r]的LCP 2 x st 把s[x]变成stn,q<=1e5,∑|S|<=1e5Solution看到总串长比较小就知道是套路题。 分三种情况考虑。 第一种情况,只有一个串,那么直接用线段树维护区间原创 2018-01-22 08:14:38 · 486 阅读 · 0 评论 -
[codeforces 547 E][51nod1440]迈克打电话
Description给出n个字符串,这n个字符串的总长为L,定义函数call(i,j)表示第j个字符串在第i个字符串中出现的次数。 给出q次询问,每次询问给出l,r,k,求∑ri=lcall(i,k)\sum_{i=l}^{r}call(i,k) n,l<=2*1e5,q<=5*1e5Solution蒟蒻不会fail树做法QwQ 只会最朴素的SA啊_ (:з」∠) _ 首先把所有串接在一起原创 2017-10-14 10:11:23 · 453 阅读 · 0 评论 -
[bzoj3123][SDOI2013]森林
Description给出一片森林,要求维护以下操作。 Q x,y,k 询问x到y的路径上权值第k小的是什么。 L x,y 在x,y之间连一条边,保证操作之后原图仍是一片森林。 强制在线。 n<=8*10^4,权值<=10^9Solution看到求k小值,立马想到主席树。(Chair_Man Tree大法好) 那么询问操作很简单。 那么合并呢? 启发式合并! 也就是选择要合并的两棵树原创 2016-07-01 12:47:19 · 733 阅读 · 0 评论 -
【清华集训2014】mex
Description有一个长度为n的数组{a1,a2,…,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。n,m<=200000,ai<=10^9Solution首先,看到这种东西,一般都是数据结构的啦。可是仔细一看,发现不知道如何维护,维护什么! 发现他没有卡离线,也没有修改,就想想离线。 把所有询问按r排序,顺序枚举所有以i为右节点的询问,用一个函数式线段树(权值线段树,主席树原创 2016-03-09 20:19:07 · 909 阅读 · 0 评论 -
GDOI 2016 Day1 T4 疯狂动物城
Description给出一个N个节点的数,和M次操作。每次操作的类型如下: 1,x,y,z,将x到y的路径上的ai加上z 2,x,y,询问x到y的路径上,ai*(1+2+..+n-i)的和 3,x,将所有的a变更回第x次修改之后的状态。 强制在线。 N,M<=10^5.Solution码农题(hehe) 愉快的农民生活 先考虑一下序列上的问题。 Ans=∑i=1nai∗(n−i+1原创 2016-05-17 20:19:59 · 1017 阅读 · 0 评论 -
【HNOI2016模拟4.13】a
Description给出一棵n个节点的树,每个节点ai的范围在1~m,和q次询问,每次询问x到y的路径中小于/等于/大于k的数的个数。强制在线。 n,q<=300000,m<=150000Solution裸题,用来练模板。 有两种做法,一种是主席数用lca直接搞。 一种是链剖开m棵线段树暴力搞。 这里打的是第一种。Code#include<cstdio>#include<cstring>原创 2016-04-20 19:40:36 · 847 阅读 · 0 评论 -
【集训队互测 2012】Middle
Description给出一个序列A,长度为n。给出m次询问,每次询问a,b,c,d(aSolution不知道有什么数据结构能维护中位数。 考虑二分答案,答案x合法就是存在一个序列,使得大于等于x的数的个数大于小于x的数的个数。 那我们可以吧每一个大于等于x的数看做1,小于x的数看做-1。那么一个序列合法就是它的和>=0。 那我们就相当于求一个左端点在[a~b],右端点在[c~d]的最大子段和原创 2016-04-13 21:52:49 · 1106 阅读 · 0 评论 -
[校内模拟]字符串
Description定义一个字符串S的权值f(S)为,其所有不同后缀两两的LCP的最大值给出一个字符串S,每个位置有权值aim次询问,每次询问给出[l,r,x],求一个[l,r]的子区间[a,b],满足f(S[a,b])>=x,且max(ai)最小n,m<=5e4Solution这题分成两部分1:给出[L,R],求f(S[L,R])考虑SAM,枚举parent树上的一...原创 2019-06-29 22:13:17 · 240 阅读 · 0 评论