C - A Simple Problem with Integers
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAXN 100010
using namespace std;
int n,m;
struct nond{
int l,r;
long long sum,flag;
}tree[MAXN*];
void up(int now){
tree[now].sum=tree[now*].sum+tree[now*+].sum;
}
void build(int now,int l,int r){
tree[now].l=l;tree[now].r=r;
if(tree[now].l==tree[now].r){
scanf("%lld",&tree[now].sum);
return ;
}
int mid=(tree[now].l+tree[now].r)/;
build(now*,l,mid);
build(now*+,mid+,r);
up(now);
}
void down(int now){
tree[now*].flag+=tree[now].flag;
tree[now*].sum+=(tree[now*].r-tree[now*].l+)*tree[now].flag;
tree[now*+].flag+=tree[now].flag;
tree[now*+].sum+=(tree[now*+].r-tree[now*+].l+)*tree[now].flag;
tree[now].flag=;
}
void change(int now,int l,int r,int k){
if(tree[now].l==l&&tree[now].r==r){
tree[now].sum+=(tree[now].r-tree[now].l+)*k;
tree[now].flag+=k;
return ;
}
if(tree[now].flag) down(now);
int mid=(tree[now].l+tree[now].r)/;
if(r<=mid) change(now*,l,r,k);
else if(l>mid) change(now*+,l,r,k);
else{ change(now*,l,mid,k);change(now*+,mid+,r,k); }
up(now);
}
long long query(int now,int l,int r){
if(tree[now].l==l&&tree[now].r==r)
return tree[now].sum;
if(tree[now].flag) down(now);
int mid=(tree[now].l+tree[now].r)/;
if(r<=mid) return query(now*,l,r);
else if(l>mid) return query(now*+,l,r);
else return query(now*,l,mid)+query(now*+,mid+,r);
}
int main(){
scanf("%d%d",&n,&m);
build(,,n);
for(int i=;i<=m;i++){
char c;int x,y,z;
scanf("\n%c%d%d",&c,&x,&y);
if(c=='Q') cout<<query(,x,y)<<endl;
else if(c=='C'){ scanf("%d",&z);change(,x,y,z); }
}
}
C - A Simple Problem with Integers的更多相关文章
- POJ 3468 A Simple Problem with Integers(线段树 成段增减+区间求和)
A Simple Problem with Integers [题目链接]A Simple Problem with Integers [题目类型]线段树 成段增减+区间求和 &题解: 线段树 ...
- POJ 3468 A Simple Problem with Integers(线段树/区间更新)
题目链接: 传送门 A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Description Yo ...
- poj 3468:A Simple Problem with Integers(线段树,区间修改求和)
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 58269 ...
- ACM: A Simple Problem with Integers 解题报告-线段树
A Simple Problem with Integers Time Limit:5000MS Memory Limit:131072KB 64bit IO Format:%lld & %l ...
- poj3468 A Simple Problem with Integers (线段树区间最大值)
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 92127 ...
- POJ3648 A Simple Problem with Integers(线段树之成段更新。入门题)
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 53169 Acc ...
- BZOJ-3212 Pku3468 A Simple Problem with Integers 裸线段树区间维护查询
3212: Pku3468 A Simple Problem with Integers Time Limit: 1 Sec Memory Limit: 128 MB Submit: 1278 Sol ...
- POJ 3468 A Simple Problem with Integers(线段树区间更新区间查询)
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 92632 ...
- A Simple Problem with Integers(树状数组HDU4267)
A Simple Problem with Integers Time Limit: 5000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
- A Simple Problem with Integers
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 77964 Acc ...
随机推荐
- hdoj--5104--Primes Problem(素数打表)
Primes Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- Spring Boot 特性 —— SpringApplication
转自:https://blog.csdn.net/cqdz_dj/article/details/52910317
- python的enumerate()函数
其中的一篇是这样的:一般情况下,如果要对一个列表或者数组既要遍历索引又要遍历元素时,可以用enumerate 比如: for index,value in enumerate(list): ...
- Oracle_备份整库
@echo off color 0b & cls echo echo 设置备份文件存放文件夹... echo set "tbuf=C:\OracleBackup" if n ...
- ROS-URDF-Gazebo
前言:在gazebo里运行urdf文件 一.安装教程包 cd ~/catkin_test/srcgit clone https://github.com/ros/urdf_sim_tutorial.g ...
- Android 解析JSON
上次讲了XML格式数据的解析方式,这次要说的是如何解析JSON数据格式,相对与XML,JSON解析数据的方式在于它的体积更小,在网络上传输可以更省流量. 这次在网上找到一个中国天气json数据的API ...
- Python之first script
1 A first script 1) script1.py - imports a Python module (libraries of additional tools) to fetch th ...
- js开发性能(一)
随着js技术的发展,性能问题开始被越来越多的人关注,最近了解了一些关于前端性能的问题,这里主要讨论一下在js脚本加载和执行的过程中,我们应该怎么样来提高js的性能. js脚本的处理 初学前端的时候,我 ...
- pycharm主题 变量颜色 自定义
File--Settings--Edtior--Color Schame-- Lanuage Defaults
- 关于计算文字显示占用画面大小(System.Drawing.Graphics.MeasureString)
最近遇到了一个需要手动为显示文字换行的场合,网上转了一圈,最后形成了下面的代码: var font = new Font("微软雅黑", 9F); - DETAIL_BASE_IN ...