社区讨论
进食后人
P4315月下“毛景树”参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mdvct7xv
- 此快照首次捕获于
- 2025/08/03 15:22 7 个月前
- 此快照最后确认于
- 2025/11/04 03:16 4 个月前
如果你 only AC on test 11,可以看看你的区间改值(Cover 操作)懒标记逻辑有没有写对,你必须得把处理的边界整个子树清空:
WA Code:
CPPinline void change(int p,int l,int r,int v){
if (l<=t[p].l&&r>=t[p].r){
t[p].add=0;
t[p].ma=v;
return ;
}pushdown(p);
int mid=t[p].l+t[p].r>>1;
if (l<=mid) change(p<<1,l,r,v);
if (r>mid) change(p<<1|1,l,r,v);
t[p].ma=max(t[p<<1].ma,t[p<<1|1].ma);
}
AC Code:
CPPinline void clear(int p,int v){
t[p].add=0;
t[p].ma=v;
if (t[p].l==t[p].r) return ;
int mid=t[p].l+t[p].r>>1;
clear(p<<1,v);
clear(p<<1|1,v);
}
inline void change(int p,int l,int r,int v){
if (l<=t[p].l&&r>=t[p].r){
clear(p,v);
return ;
}pushdown(p);
int mid=t[p].l+t[p].r>>1;
if (l<=mid) change(p<<1,l,r,v);
if (r>mid) change(p<<1|1,l,r,v);
t[p].ma=max(t[p<<1].ma,t[p<<1|1].ma);
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...