70分竟然是因为pushdown函数加了个if判断条件,改了就过了。为什么不对?
查看原帖
70分竟然是因为pushdown函数加了个if判断条件,改了就过了。为什么不对?
107354
flowerdance_043楼主2022/2/2 00:16
void push_down(int rt){
//	if(t[rt].l_m>1||t[rt].l_a){
		ll lenl=t[rt*2].r-t[rt*2].l+1;
		ll lenr=t[rt*2+1].r-t[rt*2+1].l+1;
		t[rt*2].v=(t[rt*2].v*t[rt].l_m%p+t[rt].l_a*lenl%p)%p;
		t[rt*2+1].v=(t[rt*2+1].v*t[rt].l_m%p+t[rt].l_a*lenr%p)%p;
		
		t[rt*2].l_m*=t[rt].l_m;  t[rt*2].l_m%=p;
		t[rt*2+1].l_m*=t[rt].l_m;t[rt*2+1].l_m%=p;
		
		t[rt*2].l_a=(t[rt*2].l_a*t[rt].l_m%p+t[rt].l_a)%p;
		t[rt*2+1].l_a=(t[rt*2+1].l_a*t[rt].l_m%p+t[rt].l_a)%p;
		
		t[rt].l_m=1;
		t[rt].l_a=0;
//	}
} 
2022/2/2 00:16
加载中...