各位帅哥看一看吧 明了的线段树 可样例错了

P3373 【模板】线段树 2

已经自闭了,当局者迷,旁观者清,烦请各位巨佬看一看
by shitbro @ 2020-06-17 11:01:05


我不会
by _OJF_ @ 2020-06-17 11:02:31


@[_Daybreak](/user/90972) 你看 `spread` 这么写就很小清新 ```cpp int sz[N], ch[N][2]; // size 儿子 li s[N], mt[N], at[N]; // sum 乘tag 加tag inline void ud(int x) { s[x]=(s[ch[x][0]]+s[ch[x][1]])%p; } inline void ml(int x, li k) { s[x] = s[x]*k%p, mt[x]=mt[x]*k%p, at[x]=at[x]*k%p; } inline void ad(int x, li k) { s[x] = (s[x]+k*sz[x]%p)%p, at[x]=(at[x]+k)%p; } inline void ps(int x) { if(mt[x]!=1) { ml(ch[x][0], mt[x]); ml(ch[x][1], mt[x]); mt[x]=1ll; } if(at[x]!=0) { ad(ch[x][0], at[x]); ad(ch[x][1], at[x]); at[x]=0ll; } } ```
by xwmwr @ 2020-06-17 11:20:55


@[水比田昭寿](/user/118498) 所以我spread错了吗
by shitbro @ 2020-06-17 15:05:20


@[_Daybreak](/user/90972) 只是我认为你 `spread` 比较难调
by xwmwr @ 2020-06-17 15:06:17


|