题目描述

给定一个长度为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 <cstdio> using namespace std; #define Max 200000
struct node
{
int l,r,dis;
}tree[Max*];
int t=,n,w;
char cz;
void up(int k)
{
tree[k].dis=tree[k<<].dis+tree[k<<|].dis;
}
void build(int l,int r,int k)
{
tree[k].l=l;tree[k].r=r;
if(l==r)
{
tree[k].dis=;
return;
}
int mid=(l+r)>>;
build(l,mid,k<<);
build(mid+,r,k<<|);
up(k);
}
void add(int to,int v,int k)
{
if(tree[k].l==tree[k].r)
{
tree[k].dis+=v;
return;
}
int mid=(tree[k].l+tree[k].r)>>;
if(to<=mid) add(to,v,k<<);
else add(to,v,k<<|);
up(k);
}
int ans=;
void query(int u,int v,int k)
{
if(tree[k].l==u&&tree[k].r==v)
{
ans+=tree[k].dis;
return ;
}
int mid=(tree[k].l+tree[k].r)>>;
if(mid>=v) query(u,v,k<<);
else if(mid<u) query(u,v,k<<|);
else query(u,mid,k<<),query(mid+,v,k<<|);
}
int main()
{
scanf("%d",&n);
build(,n,);
scanf("%d",&w);
int u,v;
while(w--)
{
cin>>cz;
scanf("%d%d",&u,&v);
if(cz=='x')
add(u,v,);
else if(cz=='y')
{
ans=;
query(u,v,);
printf("%d\n",ans);
}
}
return ;
}

最新文章

  1. jQuery 自带的动画效果
  2. JS 数组迭代方法
  3. Object.create() 和 __proto__ 的关系
  4. c++多态
  5. PHP项目感悟 -- 从CI框架来看iOS的MVC
  6. SQLite数据库与Contentprovider(2)
  7. 深入理解ThreadLocal(二)
  8. sqlserver之二进制和字符串sql语句
  9. POJ --- 1164 放苹果
  10. R语言机器学习之caret包运用
  11. 使用JavaScript动态的添加组件
  12. 【C#】C#对电子邮件的收发操作
  13. db2 reorg到底需要多少表空间(转)
  14. C++成员函数指针的应用
  15. java10 新特性 详解
  16. kafka 多线程消费
  17. 在安装ZooKeeper之前,请确保你的系统是在以下任一操作系统上运行
  18. Requested bean is currently in creation: Is there an unresolvable circular reference?
  19. OSG-阴影
  20. GPL协议本身就是剥削,oracle维权玩的让人恶心

热门文章

  1. c语言编译器内置宏
  2. MySql用户配置
  3. JavaWeb学习——获取类路径下的资源
  4. OPENGL_变换与坐标系
  5. 如何使得 python 脚本 不一闪而过
  6. nil 与 release
  7. 【BZOJ1855】[Scoi2010] 股票交易
  8. time库的使用
  9. PostgreSQL - update语句怎么关联多个表
  10. 关于js对象参数的讨论 用街道类比