![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
可持久化线段树
tomjobs
别慌,慌也没用
展开
-
P1972 [SDOI2009]HH的项链(树状数组离线,主席树)
题意: 多次询问[l,r][l,r][l,r]中有多少不同的数。 思路: 本题卡了莫队。 树状数组离线:每个点代表这个位置的值,然后每次遇到这个数,就把上次的位置清空。这样当前维护的区间里面就没有重复数了。 可持久化线段树:其实和树状数组离线一样,就是基于上一个前缀的线段树,将当前位置的值设置为a[i]a[i]a[i],同时将a[i]a[i]a[i]上一次出现的位置的值减去a[i]a[i]a[i]。 可持久化线段树 #include <iostream> #include <string&原创 2020-10-31 11:20:47 · 401 阅读 · 3 评论 -
Codeforces 1422F. Boring Queries(线段树+二分、可持久化线段树)
Yura owns a quite ordinary and boring array ???? of length ????. You think there is nothing more boring than that, but Vladik doesn’t agree! In order to make Yura’s array even more boring, Vladik makes ???? boring queries. Each query consists of two intege原创 2020-10-15 00:45:57 · 346 阅读 · 2 评论 -
BZOJ3585. mex(可持久化线段树,莫队分块,线段树离线操作)
Description 有一个长度为n的数组{a1,a2,…,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。 Input 第一行n,m。 第二行为n个数。 从第三行开始,每行一个询问l,r。 Output 一行一个数,表示每个询问的答案。 Sample Input 5 5 2 1 0 2 1 3 3 2 3 2 4 1 2 3 5 Sample Output 1 2 3 0 3 Hint 数据规模和约定 对于100%的数据: 1<=n,m<=200000 0&l原创 2020-07-22 20:24:45 · 293 阅读 · 0 评论 -
ACWING 255. 第K小数(可持久化线段树,静态)
给定长度为N的整数序列A,下标为 1∼N。 现在要执行M次操作,其中第i次操作为给出三个整数li,ri,ki,求A[li],A[li+1],…,Ari中第ki小的数是多少。 输入格式 第一行包含两个整数N和M。 第二行包含N个整数,表示整数序列A。 接下来M行,每行包含三个整数li,ri,ki,用以描述第i次操作。 输出格式 对于每次操作输出一个结果,表示在该次操作中,第k小的数的数值。 每个结果占一行。 数据范围 N≤105,M≤104,|A[i]|≤109 输入样例: 7 3 1 5 2 6 3 7 4原创 2020-07-22 18:49:16 · 224 阅读 · 0 评论