| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
CE了???//AC:https://www.luogu.org/recordnew/show/9383116
//No bits/stdc++.h
code:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#define ll long long
using namespace std;
const ll INF=2147483647;
ll a[100010],n,m;
struct Segmet_Tree{
ll l,r,sum,add;
}Tree[100010*4];
void build(ll p,ll l,ll r){
Tree[p].l=l; Tree[p].r=r;
if(l==r){
Tree[p].sum=a[l];
return;
}
ll mid=(l+r)/2;
build(p*2,l,mid);
build(p*2+1,mid+1,r);
Tree[p].sum=Tree[p*2].sum+Tree[p*2+1].sum;
}
inline void spread(ll p){
if(Tree[p].add){
Tree[p*2].sum+=Tree[p].add*(Tree[p*2].r-Tree[p*2].l+1);
Tree[p*2+1].sum+=Tree[p].add*(Tree[p*2+1].r-Tree[p*2+1].l+1);
Tree[p*2].add+=Tree[p].add;
Tree[p*2+1].add+=Tree[p].add;
Tree[p].add=0;
}
}
void change(ll p,ll l,ll r,ll d){
if(l<=Tree[p].l&&r>=Tree[p].r){
Tree[p].sum+=(ll)d*(Tree[p].r-Tree[p].l+1);
Tree[p].add+=d;
return;
}
spread(p);
ll mid=(Tree[p].l+Tree[p].r)/2;
if(l<=mid) change(p*2,l,r,d);
if(r>mid) change(p*2+1,l,r,d);
Tree[p].sum=Tree[p*2].sum+Tree[p*2+1].sum;
}
ll query(ll p,ll l,ll r){
if(l<=Tree[p].l&&r>=Tree[p].r) return Tree[p].sum;
spread(p);
ll mid=(Tree[p].l+Tree[p].r)/2,ans=0;
if(l<=mid) ans+=query(p*2,l,r);
if(r>mid) ans+=query(p*2+1,l,r);
return ans;
}
inline ll read(){
ll tmp=1,x=0;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') tmp=-1;
ch=getchar();
}
while(isdigit(ch)){
x=x*10+ch-48;
ch=getchar();
}
return tmp*x;
}
inline void write(ll x){
ll y=10,len=1;
while(y<=x){
y*=10;
len++;
}
while(len--){
y/=10;
putchar(x/y+48);
x%=y;
}
}
int main(){
n=read(); m=read();
for(ll i=1; i<=n; i++){
a[i]=read();
}
build(1,1,n);
while(m--){
string pd;
cin>>pd;
if(pd=="C"){
ll x=read(),y=read(),k=read();
change(1,x,y,k);
}
else{
ll x=read(),y=read();
write(query(1,x,y));
putchar('\n');
}
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator