yangjinxuan123456 @ 2024-02-23 16:04:48
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,ar[100000],a,x,y,k,s;
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>ar[i];
}
for(int i=0;i<m;i++){
cin>>a;
if(a==1){
cin>>x>>y>>k;
for(int j=x-1;j<=y-1;j++){
ar[j]+=k;
}
}
else{
cin>>x>>y;
s=0;
for(int j=x-1;j<=y-1;j++){
s+=ar[j];
}
cout<<s<<endl;
}
}
}
by Day_Tao @ 2024-02-23 16:21:12
首先,这是线段树板子题……
最后三个点如果是你这种写法的话,
请学习完线段树部分知识再来尝试此题。
还有,“保证任意时刻数列中所有元素的绝对值之和