AT_Feild @ 2024-11-19 18:51:01
#include<bits/stdc++.h>
#define N 10005
#define int long long
using namespace std;
struct node{
int l,r,sum,tg=0;
}seg[4*N];
int n,m;
int in[N];
void push_down(int p){
seg[2*p].tg+=seg[p].tg;
seg[2*p+1].tg+=seg[p].tg;
seg[2*p].sum+=(seg[2*p].r-seg[2*p].l+1)*seg[2*p].tg;
seg[2*p+1].sum+=(seg[2*p+1].r-seg[2*p+1].l+1)*seg[2*p+1].tg;
seg[p].tg=0;
}
void push_up(int p){
seg[p].sum=seg[2*p].sum+seg[2*p+1].sum;
}
void building(int p,int l,int r){
seg[p].l=l;
seg[p].r=r;
if(l==r){
seg[p].sum=in[l];
return;
}
int mid=(l+r)/2;
building(2*p,l,mid);
building(2*p+1,mid+1,r);
push_up(p);
}
void insert(int p,int l,int r,int k){
if(l>seg[p].r or seg[p].l>r)return ;
if(r>=seg[p].r and seg[p].l>=l){
seg[p].tg+=k;
seg[p].sum+=(seg[p].r-seg[p].l+1)*k;
return;
}
push_down(p);
insert(2*p,l,r,k);
insert(2*p+1,l,r,k);
push_up(p);
}
int qurey(int p,int l,int r){
if(l>seg[p].r or seg[p].l>r)return 0;
if(r>=seg[p].r and seg[p].l>=l){
return seg[p].sum;
}
push_down(p);
return qurey(2*p,l,r)+qurey(2*p+1,l,r);
}
signed main() {
/*
5 5
1 5 4 2 3
2 2 4
1 2 3 2
2 3 4
1 1 5 1
2 1 4
*/
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>in[i];
}
building(1,1,n);
// for(int i=1;i<4*n;i++){
// cout<<"l->r: "<<seg[i].l<<" -> "<<seg[i].r<<" sum:"<<seg[i].sum<<endl;
// }
for(int i=1;i<=m;i++){
int leixin,x,y,k;
cin>>leixin;
cin>>x>>y;
if(leixin==1){
cin>>k;
insert(1,x,y,k);
for(int i=1;i<4*n;i++){
cout<<"l->r: "<<seg[i].l<<" -> "<<seg[i].r<<" sum:"<<seg[i].sum<<endl;
}
cout<<endl;
}
else{
// cout<<qurey(1,x,y)<<endl;
for(int i=1;i<4*n;i++){
cout<<"l->r: "<<seg[i].l<<" -> "<<seg[i].r<<" sum:"<<seg[i].sum<<endl;
}
cout<<endl;
}
}
return 0;
}
by yuanshen362 @ 2024-11-19 18:51:47
@AT_Feild
你咋还在写这玩意?
快去写可持久化,别搁这儿水了,我知道你会
by yuanshen362 @ 2024-11-19 18:52:07
你还能不会吗
by __My0217__ @ 2024-11-19 18:52:26
《为什么你的 N
只有
by __My0218__ @ 2024-11-19 18:55:05
L
by __My0217__ @ 2024-11-19 18:55:46
《为什么你的 pushdown
里面要用len乘儿子的tg》
by yuanshen362 @ 2024-11-19 18:55:47
@AT_Feild 芒才眉山主食。
然而山了海事撮的。
by __My0217__ @ 2024-11-19 18:58:18
@ZhangZhiyang
by yuanshen362 @ 2024-11-19 18:58:44
@AT_FeildI see.
你好像写了线段等差三角形史山
by __My0218__ @ 2024-11-19 18:58:46
直奔主题:fw zzy