线段树(区间修改,区间和):#include #include #include using namespace std;int c[1000000],n,m;char s;void update(int p,int l,int r,int x,int add){ int m=(l+r) / 2; ... ...
分类:
编程语言 时间:
2019-11-12 10:47:37
阅读次数:
67
题意: 有一个长度为$n$的序列,每个数的值代表一种颜色,有$m$次询问,每次询问求$[L,R]$中的颜色数。、 "题目链接" 解法: 将询问离线处理,按右区间排序,每次右区间扩大,就更新新加入的点,如果该点的颜色之前出现过,就把之前的那个点删掉,然后对每个线段树来说,进行区间查询即可,通过分析可知 ...
分类:
其他好文 时间:
2019-11-12 09:34:00
阅读次数:
91
T1: 对两边同取对数就完了 T2: 差分后会发现,其实就是将数字左右移动,且每次只能移动k步 那就简单了,模k同余的数一定可以移到一起,不同余的一定不行,所以开个k的桶统计一下就行了 T3: 对于每个节点求贡献 可以对于每个节点统计子树内节点在序列上的分布情况 具体来说可以用线段树来解决,统计哪个 ...
分类:
其他好文 时间:
2019-11-12 09:30:12
阅读次数:
113
"题目描述" 离散化,线段树维护区间修改,发现询问都是单点的$max$,不妨把标记留在点上,不用下传,查询时取个$max$就可以了 ...
分类:
其他好文 时间:
2019-11-11 13:06:34
阅读次数:
84
"题目链接" 发现区间按左端点排序后右端点也是单调的,所以扫一遍就行了,用权值线段树维护第$k$大 ...
分类:
其他好文 时间:
2019-11-11 12:48:11
阅读次数:
77
//zz https://blog.csdn.net/u012972031/article/details/88751811//https://www.luogu.org/problemnew/show/P3372 #include<cstdio> #include<iostream> using ...
分类:
其他好文 时间:
2019-11-11 12:25:05
阅读次数:
58
对于给定的一段正整数序列,逆序对就是序列中ai>aj且i<j的有序对。求这段正整数序列中逆序对的数目。Input第一行,一个数n,表示序列中有n个数。N<=5*10^5第二行n个数,表示给定的序列。序列中每个数字不超过10^9Output给定序列中逆序对的数目。Sample Input65 4 2 ...
分类:
其他好文 时间:
2019-11-11 12:22:46
阅读次数:
76
P3834 【模板】可持久化线段树 1(主席树) Description 如题,给定N个整数构成的序列,将对于指定的闭区间查询其区间内的第K小值。 Input 第一行包含两个正整数N、M,分别表示序列的长度和查询的个数。 第二行包含N个整数,表示这个序列各项的数字。 接下来M行每行包含三个整数l,r ...
分类:
其他好文 时间:
2019-11-11 09:15:06
阅读次数:
102
"[HDU4867]Xor (线段树分治+类数位dp)" 提供一种$ (m+n) log a log m$带有常数约$\frac{1}{log n} $的算法 处理询问,将后来加入的数算进序列中,则每个数$a_i$都有一段出现的区间$[L,R]$ 离线询问后,我们考虑用线段树分治将这些数加入到询问区 ...
分类:
其他好文 时间:
2019-11-10 22:38:44
阅读次数:
112
其实是数据结构。 智推连续几天给我推树状数组的模板,还放在第一位…… 对着蓝书的图看了好几天才看懂,树状数组的另外一个名字是二叉索引树,指通过把一个数组抽象的变形成树状的以求得到树形数据结构的效果。有人说是线段树的阉割版,我不太清楚,树状数组应该是不支持区间修改加速的。 首先我们需要理解lowbit ...
分类:
编程语言 时间:
2019-11-10 15:34:40
阅读次数:
64