#include <bits/stdc++.h>
using namespace std;
using LL = long long;
#define lson (nd<<1)
#define rson (nd<<1|1)
#define mid (l+r>>1)
const int N = 1e5+5;
int sum[N<<2], lazy[N<<2];
int a[N];
void build(int nd, int l, int r){
if(l==r){
sum[nd]=a[l];
return;
}
build(lson, l, mid);
build(rson, mid+1, r);
sum[nd] += sum[lson] + sum[rson];
}
void push_down(int nd, int l, int r){
if(lazy[nd]){
lazy[lson] += lazy[nd];
lazy[rson] += lazy[nd];
sum[lson] += (mid-l+1) * lazy[nd];
sum[rson] += (r-mid) * lazy[nd];
lazy[nd] = 0;
}
}
void update(int nd, int l, int r, int L, int R, int val){
if(L<=l&&R>=r){
sum[nd] += (r-l+1) * val;
lazy[nd] += val;
return;
}
push_down(nd, l, r);
if(L<=mid){
update(lson, l, mid, L, R, val);
}
if(R>mid){
update(rson, mid+1, r, L, R, val);
}
sum[nd] = sum[lson] + sum[rson];
}
int query(int nd, int l, int r, int L, int R){
if(l>=L&&R>=r){
return sum[nd];
}
push_down(nd, l, r);
int ret=0;
if(L<=mid){
ret+=query(lson, l, mid, L, R);
}
if(R>mid){
ret+=query(rson, mid+1, r, L, R);
}
return ret;
}
int n;
int main(){
cin >> n;
for(int i=1;i<=n;++i){
cin >> a[i];
}
build(1, 1, n);
update(1, 1, n, 1, 3, -1);
update(1, 1, n, 2, 5, 1);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~