
线段树和树状数组
嘴角上扬*
渴求力量的家伙毫无疑问地都在追求着战斗!-更木剑八
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
AcWing 1270. 数列区间最大值
代码 #include<iostream> #include<algorithm> #include<climits> using namespace std; const int N = 100010; int w[N]; struct node { int l, r; int maxx; }tree[4 * N]; int n, m; void build_tree(int node, int l, int r) { if(l ==原创 2022-01-30 00:35:22 · 793 阅读 · 0 评论 -
A Simple Problem with Integers
Ac代码 #include<iostream> #include<algorithm> #include<cstring> using namespace std; const int maxl=100010; typedef long long ll; ll b[maxl],c[maxl]; ll sum[maxl]; int a[maxl]; int n,m; int lowbit(int x) { return x&(-x); } void..原创 2021-11-28 19:42:08 · 207 阅读 · 0 评论 -
Turing Tree
题目 题目意思为让求在有n个元素的数列中,取从第i个到第j个数之间,所有不同的数字的和,比如说 1 1 3 他们三个元素的和就是4,而不是5 思路 采用树状数组模板,以及用map记录其是否出现过,首先用一个普通的数组通入这一连串的数字,然后再对区间求和的过程中,如果没统计过,就直接在j那个位置上执行,add(j,a[j]),并且map记录a[j]的位置是j,这样如果一旦再出现,就先将其前面那个j位置出的a[j]减去,然后再在现在位置加上,最后用数组数组求和。 Ac代码 #include<iostr..原创 2021-11-28 19:38:45 · 473 阅读 · 0 评论 -
敌兵布阵(HDU - 1166 )
题目 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。 中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向Derek汇报某一段连续的工兵营地一共有多少人,例如Derek问:“Tidy,马上汇报第3原创 2021-11-19 08:48:42 · 142 阅读 · 0 评论 -
I Hate It(HDU - 1754 )
样例输入 5 6 1 2 3 4 5 Q 1 5 U 3 6 Q 3 4 Q 4 5 U 2 9 Q 1 5 样例输出 5 6 5 9 AC代码 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int maxx=200005; int s[maxx], mx[maxx<<2]; vo.原创 2021-11-18 20:03:34 · 620 阅读 · 0 评论