萌新求助树链剖分,T了五个点QAQ

P3178 [HAOI2015] 树上操作

@[vectorwyx](/user/238408) ```cpp void dfs1(int now,int fa){ f[now]=fa; dep[now]=dep[fa]+1; siz[now]=1; int mx=0; for(int i=head[now];i;i=e[i].next){ int p=e[i].to; if(p==fa) continue; dfs1(p,now); siz[now]+=siz[p]; if(siz[p]>mx){ mx=p; <- 这里错了 换成mx=siz[p];即可AC son[now]=p; } } } ```
by Stay_Hungry @ 2020-10-12 22:12:49


教你一个nlog的方法(我也刚学会)。 用括号序代替重链剖分序,然后子树修改相当于区间修改,查询相当于查一个前缀,nlogn就可以做
by Gemini7X @ 2020-10-12 22:32:36


@[Flying_Bird](/user/328405) 括号序就是欧拉序嘛?
by 几何之舞丶 @ 2020-10-13 06:42:27


@[Stay_Hungry](/user/105922) !!!太感谢您了orz,您太强了QAQ,我手残打错了/kk
by vectorwyx @ 2020-10-13 07:19:14


@[Flying_Bird](/user/328405) 妙 啊
by vectorwyx @ 2020-10-13 07:19:51


但是最标准的树链剖分不能这样做吧/yiw
by vectorwyx @ 2020-10-13 07:20:28


|