洛谷P3374

  1. //询问区间和,支持单点修改
  2. #include <cstdio>
  3.  
  4. using namespace std;
  5.  
  6. const int maxn=;
  7.  
  8. struct treetype
  9. {
  10. int l,r,sum;
  11. };
  12.  
  13. treetype a[*maxn];
  14. int num[maxn];
  15.  
  16. void build(int k,int l,int r)
  17. {
  18. a[k].l=l;a[k].r=r;
  19. if (l==r)
  20. {
  21. a[k].sum=num[l];
  22. return;
  23. }
  24. int mid=(l+r)>>,i=k<<;
  25. build(i,l,mid);
  26. build(i+,mid+,r);
  27. a[k].sum=a[i].sum+a[i+].sum;
  28. }
  29. void change(int k,int x,int t)
  30. {
  31. if (a[k].l==a[k].r)
  32. {
  33. a[k].sum+=t;
  34. return;
  35. }
  36. int mid=(a[k].l+a[k].r)>>,i=k<<;
  37. if (x<=mid) change(i,x,t);
  38. else change(i+,x,t);
  39. a[k].sum=a[i].sum+a[i+].sum;
  40. }
  41. int query(int k,int x,int y)
  42. {
  43. if (x<=a[k].l && a[k].r<=y) return a[k].sum;
  44. int mid=(a[k].l+a[k].r)>>,ans=,i=k<<;
  45. if (x<=mid) ans=query(i,x,y);
  46. if (mid<y) ans+=query(i+,x,y);
  47. return ans;
  48. }
  49.  
  50. int main()
  51. {
  52. int n,m;
  53. scanf("%d%d",&n,&m);
  54. for (int i=;i<=n;i++) scanf("%d",&num[i]);
  55. build(,,n);
  56. //for (int i=1;i<=n*2;i++) printf("%d %d %d %d\n",i,a[i].l,a[i].r,a[i].sum);
  57. for (int i=;i<=m;i++)
  58. {
  59. int t,x,y;
  60. scanf("%d%d%d",&t,&x,&y);
  61. if (t==) change(,x,y);
  62. else printf("%d\n",query(,x,y));
  63. }
  64. return ;
  65. }

洛谷P3374(线段树)(询问区间和,支持单点修改)的更多相关文章

  1. NOIP2017提高组Day2T3 列队 洛谷P3960 线段树

    原文链接https://www.cnblogs.com/zhouzhendong/p/9265380.html 题目传送门 - 洛谷P3960 题目传送门 - LOJ#2319 题目传送门 - Vij ...

  2. 洛谷P3372线段树1

    难以平复鸡冻的心情,虽然可能在大佬眼里这是水题,但对蒟蒻的我来说这是个巨大的突破(谢谢我最亲爱的lp陪我写完,给我力量).网上关于线段树的题解都很玄学,包括李煜东的<算法竞赛进阶指南>中的 ...

  3. 洛谷 P3372 线段树1

    这是一道模板题 线段树介绍https://www.cnblogs.com/nvwang123/p/10420832.html #include<bits/stdc++.h> using n ...

  4. 洛谷P3373线段树模板2

    题目:https://www.luogu.org/problemnew/show/P3373 带乘的线段树,更新时把加的标记也乘一下,然后取值时先乘后加. 代码如下: #include<iost ...

  5. 洛谷P3372线段树模板1——线段树

    题目:https://www.luogu.org/problemnew/show/P3372 线段树模板. 代码如下: #include<iostream> #include<cst ...

  6. [ZOJ1610]Count the Colors(线段树,区间染色,单点查询)

    题目链接:http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=1610 题意:给一个长8000的绳子,向上染色.一共有n段被染色,问染 ...

  7. HDU 2795 Billboard 线段树,区间最大值,单点更新

    Billboard Time Limit: 20000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  8. hdu3074 线段树求区间乘积(单点更新)

    题意:       给你n个数,两种操作,(1) 把第b个数改成c (2)算出b-c的乘积,结果对1000000007取余. 思路:       线段树单点更新,简单题目,不多解释,具体看代码. #i ...

  9. 洛谷3372线段树模板题 对区间+k或者查询区间和

    #include<bits/stdc++.h> using namespace std; typedef unsigned int ui; typedef long long ll; ty ...

  10. 洛谷P3373 线段树2(补上注释了)

    毒瘤题.找了一下午+晚上的BUG,才发现原来query_tree写的是a%p; 真的是一个教训 UPD:2019.6.18 #include<iostream> #include<c ...

随机推荐

  1. Linux实用技巧--隧道

    平时开发过程中,可能会遇到一些网络问题,比如npm install 一些依赖包.本地电脑是可以,没有问题.但是测试环境服务器,由于公司内部网络安全限制,不可以随意访问外部网络.因此下载一个依赖包就变得 ...

  2. Dapper - a simple object mapper for .Net

    Dapper - a simple object mapper for .Net Release Notes Located at stackexchange.github.io/Dapper Pac ...

  3. Sabotage 【UVA - 10480】【最大流割边】

    题目链接 很容易会想到是最大流建边,但是同样的这里有坑点,就是有的人去输出边的时候,去把残余网络的流为0的边给输出了,其实不然,我们应当输出的是那些最后跑到深度为0的不能再走下去的点,只要把他们割了, ...

  4. JavaScript.InjectedScriptHost

    "use strict"; (function(InjectedScriptHost, inspectedGlobalObject, injectedScriptId) {     ...

  5. Netty之揭开BootStrap 的神秘面纱

    客户端BootStrap: Bootstrap 是Netty 提供的一个便利的工厂类, 我们可以通过它来完成Netty 的客户端或服务器端的Netty 初始化.下面我先来看一个例子, 从客户端和服务器 ...

  6. Java中的多线程基础

    1.线程与进程 进程: 进程是程序运行以及资源分配的基本单位,一个程序至少有一个进程. 如下图所示: 线程: 线程是CPU调度和分配的基本单位,一个进程至少有一个线程. 同一个进程中的线程共享进程资源 ...

  7. 3、NumPy 数组属性

    1.秩.维度 NumPy 数组的维数称为秩(rank),一维数组的秩为 1,二维数组的秩为 2,以此类推. 在 NumPy中,每一个线性的数组称为是一个轴(axis),也就是维度(dimensions ...

  8. js/jquery中什么时候用return,什么时候用return false

    根本的说 return 是函数的返回结果用, 如果你一个函数需要执行结果那就return 你需要的结果, 不需要结果就不用return而在jq中有些特殊的用法,比如$().each(function( ...

  9. 安卓构架组件——概述 Android Architecture Components

    谷歌官文文档地址:https://developer.android.google.cn/topic/libraries/architecture 安卓构架组建是库的集合:帮助你设计健壮的.易测试的. ...

  10. 2018-8-10-win10-UWP-序列化

    title author date CreateTime categories win10 UWP 序列化 lindexi 2018-08-10 19:16:50 +0800 2018-2-13 17 ...