20pts自闭求助

P3384 【模板】重链剖分/树链剖分

```cpp void pushdown(int k,int l,int r){ if(!tag[k]) return; tag[ls]=(tag[ls]+tag[k])%p; tag[rs]=(tag[rs]+tag[k])%p; t[ls]=(t[ls]+1ll*tag[k]*(mid-l+1))%p; t[rs]=(t[rs]+1ll*tag[k]*(r-mid))%p; tag[k]=0; } ``` 线段树的down操作写错了,这么改就对了@[huoxj_runz](/user/154999)
by C锥 @ 2020-11-04 20:02:23


```cpp void modify(int o, int l, int r, int k) { (t[o].tag += k) %= mod; t[o].sum = (t[o].sum + 1ll * (r - l + 1) * k % mod) % mod; } void down(int o, int l, int r) { if(!t[o].tag) return ; modify(ls(o), l, mid, t[o].tag); modify(rs(o), mid + 1, r, t[o].tag); t[o].tag = 0; } ``` 我一般这么写,个人感觉不易错
by C锥 @ 2020-11-04 20:05:21


@[C锥](/user/93652) 感谢!!萌新受教了orz
by huoxj_runz @ 2020-11-04 22:02:48


此贴已结,不加1LL见祖宗
by huoxj_runz @ 2020-11-05 08:05:56


|