![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
线段树&树状数组
consult_
这个作者很懒,什么都没留下…
展开
-
换个角度思考(离线化+树状数组)
换个角度思考题目描述给定一个序列,有多次询问,每次查询区间里小于等于某个数的元素的个数即对于询问 (l,r,x),你需要输出 ∑i=lr[ai≤x]\sum_{i=l}^{r}[a_i \le x]∑i=lr[ai≤x] 的值其中 [exp] 是一个函数,它返回 1 当且仅当 exp 成立,其中 exp 表示某个表达式输入描述:第一行两个整数n,m第二行n个整数表示序列a的元素,序列下标从1开始标号,保证1 ≤ a_i ≤ 105之后有m行,每行三个整数(l,r,k),保证1 ≤ l ≤原创 2020-08-06 23:58:50 · 718 阅读 · 0 评论 -
树状数组
树状数组:功能:大量动态修改数组元素的值:add(int x,int v);动态求数组区间元素的和 query(int x);写的模板题传送#include<iostream>#include<cstdio>using namespace std;const int N = 1e5+7;int tr[N];int w[N];int n,m;i...原创 2020-02-04 21:59:41 · 126 阅读 · 0 评论 -
P1972 HH的项链(离线化+树状数组)
P1972 [SDOI2009]HH的项链题目描述HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答…… 因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。输入格式一行一个正整数 n,表示项链长度。第二行 n 个正整数 a_i ,表示项链中第 i 个贝壳的种类。原创 2020-08-06 19:32:13 · 180 阅读 · 0 评论 -
D 树上求和 (dfs序 + 线段树)
D 树上求和题目描述:给你一棵根为1的有N个节点的树,以及Q次操作。每次操作诸如:1 x y:将节点 x 所在的子树的所有节点的权值加上 y2 x:询问 x 所在子树的所有节点的权值的平方和,答案模23333后输出思路:通过一次DFS后可以求得此树的DFS序 ,以及把这棵树转化为了一个一维数组,对节点 x 所在的的子树的所有节点的操作就转化为了,对此数组的[ ldf[x] ,rdf[x] ] 这个区间的操作,这就是DFS序的性质。那么接下来就可以用线段树来维护区间的操作了。线段树需要的功原创 2020-07-17 17:09:49 · 187 阅读 · 0 评论 -
线段树(四类)
线段树功能:变化比较多,能解决树状数组不能解决的问题,复杂度O(4*log n)模板题入口#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int N = 1e5+7;int w[N];...原创 2020-02-04 22:03:47 · 1236 阅读 · 0 评论 -
小阳的贝壳(差分+线段树)
小阳的贝壳题目描述 :小阳手中一共有 n 个贝壳,每个贝壳都有颜色,且初始第 i 个贝壳的颜色为 col_i 现在小阳有 3 种操作:1 l r x:给 [l,r] 区间里所有贝壳的颜色值加上 x 。2 l r:询问 [l,r] 区间里所有相邻贝壳 颜色值的差(取绝对值) 的最大值(若 l = r 输出 0)。3 l r :询问 [l,r]区间里所有贝壳颜色值的最大公约数。输入描述:第一行输入两个正整数 n,m,分别表示贝壳个数和操作个数。第二行输入 n 个数 col_i 表示每个贝壳原创 2020-08-05 20:55:20 · 156 阅读 · 0 评论