社区讨论
警示后人 - 如果你随机 MLE
P5494【模板】线段树分裂参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mkkydhdn
- 此快照首次捕获于
- 2026/01/19 17:18 上个月
- 此快照最后确认于
- 2026/01/23 12:55 4 周前
你的区间求和可能写成了这样:
CPPll query1(int p,int l,int r,int ql,int qr){
if(ql<=l&&r<=qr){
return tree[p].sum;
}
int mid=(l+r)>>1;
ll res=0;
if(ql<=mid){
res+=query1(tree[p].ls,l,mid,ql,qr);
}
if(qr>mid){
res+=query1(tree[p].rs,mid+1,r,ql,qr);
}
return res;
}
但正是这个
CPPres 成功使你 MLE 了,应该写成这样:ll query1(int p,int l,int r,int ql,int qr){
if(l>qr||r<ql){
return 0ll;
}
if(ql<=l&&r<=qr){
return tree[p].sum;
}
int mid=(l+r)>>1;
return query1(tree[p].ls,l,mid,ql,qr)+query1(tree[p].rs,mid+1,r,ql,qr);
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...