zpy12345 @ 2024-12-19 21:32:03
1.请在push_down()时同时push_down()修改标记与增加标记,如果有修改标记的下放,请将下放到的节点的增加标记清零。
引用大佬@QQzhi 的代码(注:t为加法标记,tt为修改标记)
void pushdown(int id){
if (tt[id]<+oo){
tt[id*2]=tt[id*2+1]=tt[id];
t[id*2]=t[id*2+1]=0;//很关键!!!
a[id*2]=a[id*2+1]=tt[id];
tt[id]=+oo;
}
t[id*2]+=t[id];
t[id*2+1]+=t[id];
a[id*2]+=t[id];
a[id*2+1]+=t[id];
t[id]=0;
}
2.注意在每次修改与查询时下放懒标记
3.查询时ans初值需要足够小!!!!
4.记得开 long long
5.如果你 TLE 请试着优化读入与输出速度
by hard_shuati @ 2024-12-20 15:30:27
thX