Luogu P2068 统计和
P2068 统计和
题目描述
给定一个长度为n(n<=100000),初始值都为0的序列,x(x<=10000)次的修改某些位置上的数字,每次加上一个数,然后提出y (y<=10000)个问题,求每段区间的和。时间限制1秒。
输入输出格式
输入格式:
第一行1个数,表示序列的长度n
第二行1个数,表示操作的次数w
后面依次是w行,分别表示加入和询问操作
其中,加入用x表示,询问用y表示
x的格式为"x a b" 表示在序列a的位置加上b
y的格式为"y a b" 表示询问a到b区间的加和
输出格式:
每行一个数,分别是每次询问的结果
输入输出样例
5
4
x 3 8
y 1 3
x 4 9
y 3 4
8
17
线段树中最低级的模板,只有区间查询和单点修改。
请放心食用。
#include <iostream>
#include <cstring>
#include <cstdio>
#define MAXN 100007
#define lson (k<<1)
#define rson (k<<1)+1
#define int long longusing namespace std;int n, m, a, b, Ans;
char c;
struct node
{int l, r;int sum;
}tree[MAXN*4];void build(int k, int ll, int rr)
{tree[k].l = ll, tree[k].r = rr;if(ll == rr){tree[k].sum = 0;return ;}int mid = (ll+rr)/2;build(lson, ll, mid);build(rson, mid+1, rr);tree[k].sum = tree[lson].sum+tree[rson].sum;
}void change(int k)
{if(tree[k].l == tree[k].r && tree[k].l == a){tree[k].sum += b;return ;}int mid = (tree[k].l+tree[k].r)/2;if(mid >= a) change(lson);if(mid < a) change(rson);tree[k].sum = tree[lson].sum+tree[rson].sum;
}void find(int k) {if(tree[k].l >= a && tree[k].r <= b){Ans += tree[k].sum;return ;}int mid = (tree[k].l+tree[k].r)/2;if(mid >= a) find(lson);if(mid < b) find(rson);
}main()
{scanf("%lld%lld", &n, &m);build(1, 1, n);for(int i=1; i<=m; i++){Ans = 0;cin>>c>>a>>b;if(c == 'x'){change(1);}else{find(1);printf("%lld\n", Ans);}}
}
转载于:https://www.cnblogs.com/bljfy/p/9126823.html
Luogu P2068 统计和相关推荐
- 洛谷——P2068 统计和
https://www.luogu.org/problem/show?pid=2068#sub 题目描述 给定一个长度为n(n<=100000),初始值都为0的序列,x(x<=10000) ...
- 洛谷P2068 统计和题解
题目描述 给定一个长度为n(n<=100000),初始值都为0的序列,x(x<=10000)次的修改某些位置上的数字,每次加上一个数,然后提出y (y<=10000)个问题,求每段区 ...
- luogu P1549 棋盘问题(2) 题解
luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...
- [Luogu] 选学霸
https://www.luogu.org/problemnew/show/P2170 并查集+DP #include <iostream> #include <cstring> ...
- Luogu 2470 [SCOI2007]压缩
和Luogu 4302 [SCOI2003]字符串折叠 差不多的想法,区间dp 为了计算方便,我们可以假设区间[l, r]的前面放了一个M,设$f_{i, j, 0/1}$表示区间$[i, j]$中是 ...
- 【Luogu】P1613 跑路
[Luogu]P1613 跑路 一.题目 题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资 ...
- Luogu P6055 [RC-02] GCD(莫比乌斯反演,杜教筛)(这题乐死我了,真就图一乐呗)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P6055 Prob ...
- Luogu P3177 [HAOI2015] 树上染色(树上背包)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P3177 [HAOI2015] 树上染色 有一棵点数为 NNN 的树,树边有边权.给你一 ...
- Luogu P4178 Tree (点分治 + 树状数组)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P4178 Prob ...
- Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理,子集反演)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理) Problem n≤1 ...
最新文章
- html5健康有机蔬菜果汁店网站模板
- C#笔记10 委托和Lambda
- V-最大公约数 递归
- java工程师项目经验_java初级工程师项目经验简历范文
- VMware Workstation 12 Pro的安装
- 如何高效学习-《暗时间》读后感
- word 论文公式编号快捷方法
- 学校计算机组管理制度,校园一卡通管理结算中心机房管理制度
- windows 2003 server 企业英文版 序列号
- 第三方支付架构设计之—帐户体系
- 网易有道,能否看透“K12双减”风浪?
- 避坑指南:Kafka集群快速扩容的方案总结
- eclipse快捷键——复制当前行到上一行或者下一行
- Oracle数据库的表空间(一)
- 阿里巴巴区块链防食品欺诈平台进入试点阶段
- oracle创建多字段索引吗,oracle复合索引介绍(多字段索引)
- Repeater用法(
- mapbox 展示地图 添加点、线、面绘制工具
- 更改计算机菜单字体大小,windows10系统修改右键菜单字体的方法
- VC Formal FPV 启动脚本简单模板