蒟蒻求助树剖!!30pts qwq

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

`query`和`qRange`中计算要时刻取模,不然会爆。
by 404Not_Found @ 2022-01-17 11:00:13


```cpp int query(int rt,int l,int r,int ql,int qr){ if(ql<=l&&r<=qr) {return tree[rt]%mod;} int res=0,mid=(l+r)>>1; pushdown(rt,l,r); if(ql<=mid) res=(res+query(rt<<1,l,mid,ql,qr))%mod; if(qr>mid) res=(res+query(rt<<1|1,mid+1,r,ql,qr))%mod; return res; } int qRange(int x,int y){ int res=0; while(top[x]!=top[y]){ if(dep[top[x]]<dep[top[y]]) swap(x,y); res=(res+query(1,1,n,id[top[x]],id[x]))%mod; x=fa[top[x]];; } if(dep[x]>dep[y]) swap(x,y); res=(res+query(1,1,n,id[x],id[y]))%mod; return res%mod; ```
by 404Not_Found @ 2022-01-17 11:00:51


@[404Not_Found](/user/280473) 感谢,已a
by Vidoliga @ 2022-01-17 11:23:22


|