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区间的加和

输出格式:

每行一个数,分别是每次询问的结果

输入输出样例

输入样例#1:

5
4
x 3 8
y 1 3
x 4 9
y 3 4

  

输出样例#1:

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 统计和相关推荐

  1. 洛谷——P2068 统计和

    https://www.luogu.org/problem/show?pid=2068#sub 题目描述 给定一个长度为n(n<=100000),初始值都为0的序列,x(x<=10000) ...

  2. 洛谷P2068 统计和题解

    题目描述 给定一个长度为n(n<=100000),初始值都为0的序列,x(x<=10000)次的修改某些位置上的数字,每次加上一个数,然后提出y (y<=10000)个问题,求每段区 ...

  3. luogu P1549 棋盘问题(2) 题解

    luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...

  4. [Luogu] 选学霸

    https://www.luogu.org/problemnew/show/P2170 并查集+DP #include <iostream> #include <cstring> ...

  5. Luogu 2470 [SCOI2007]压缩

    和Luogu 4302 [SCOI2003]字符串折叠 差不多的想法,区间dp 为了计算方便,我们可以假设区间[l, r]的前面放了一个M,设$f_{i, j, 0/1}$表示区间$[i, j]$中是 ...

  6. 【Luogu】P1613 跑路

    [Luogu]P1613 跑路 一.题目 题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资 ...

  7. Luogu P6055 [RC-02] GCD(莫比乌斯反演,杜教筛)(这题乐死我了,真就图一乐呗)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P6055 Prob ...

  8. Luogu P3177 [HAOI2015] 树上染色(树上背包)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P3177 [HAOI2015] 树上染色 有一棵点数为 NNN 的树,树边有边权.给你一 ...

  9. Luogu P4178 Tree (点分治 + 树状数组)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P4178 Prob ...

  10. Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理,子集反演)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理) Problem n≤1 ...

最新文章

  1. html5健康有机蔬菜果汁店网站模板
  2. C#笔记10 委托和Lambda
  3. V-最大公约数 递归
  4. java工程师项目经验_java初级工程师项目经验简历范文
  5. VMware Workstation 12 Pro的安装
  6. 如何高效学习-《暗时间》读后感
  7. word 论文公式编号快捷方法
  8. 学校计算机组管理制度,校园一卡通管理结算中心机房管理制度
  9. windows 2003 server 企业英文版 序列号
  10. 第三方支付架构设计之—帐户体系
  11. 网易有道,能否看透“K12双减”风浪?
  12. 避坑指南:Kafka集群快速扩容的方案总结
  13. eclipse快捷键——复制当前行到上一行或者下一行
  14. Oracle数据库的表空间(一)
  15. 阿里巴巴区块链防食品欺诈平台进入试点阶段
  16. oracle创建多字段索引吗,oracle复合索引介绍(多字段索引)
  17. Repeater用法(
  18. mapbox 展示地图 添加点、线、面绘制工具
  19. 更改计算机菜单字体大小,windows10系统修改右键菜单字体的方法
  20. VC Formal FPV 启动脚本简单模板

热门文章

  1. [渝粤教育] 西南科技大学 交通工程学 在线考试复习资料
  2. 设计模式(一)面向对象设计原则
  3. 拼装html字符串的最快方法
  4. Python搭建环境
  5. [翻译]JUnit 5 用户手册
  6. [转]Fedora用root登录
  7. web基础知识梳理(笔记)
  8. iOS-自定义导航栏后侧滑返回功能失效
  9. [leetCode]Merge k Sorted Lists
  10. uploadify一次上传多个图片:效果展示