问几个问题

P1600 [NOIP2016 提高组] 天天爱跑步

我怀疑你跟我做的不是一道题
by __Aaaaaaaa @ 2023-10-18 12:08:38


@[Aaron_wch](/user/338880) 我用的线段树合并/kel 可能大佬做法跟我不一样 QWQ
by _fairytale_ @ 2023-10-18 15:38:09


我怀疑我不会这道题
by bloodstalk @ 2023-10-18 18:37:32


您的狮子太强了
by OcTar @ 2023-10-19 10:30:13


知道了,警示后人,$s$ 和 $t$ 的贡献要开两棵线段树,题解的写法不知道为什么能过,疑似是平移值域导致的...?总之最好别照着题解写,线段树合并的话最好开两棵。
by _fairytale_ @ 2023-10-19 15:30:54


@[_fairytale_](/user/280999) 这个式子要处理一下,因为直接维护可能会算到另一边的贡献,把第一个等式两边取反后得到: $$2*dep[lca]-dep[s]=dep[u]-w[u]$$ $$dep[s]=dep[u]+w[i]$$ 由于当前点 $u$ 和起点 $s$ 的 $dep$ 之和大于等于 $dep[lca]*2$ ,$dep[u]$ 又小于等于 $dep[s]$ 所以两个式子的贡献不会算重,当 $w[i]=0$ 时两个式子右边的值相同,所以只用算一次就可以得到两个式子的贡献。
by pedestrian_ @ 2023-11-01 08:24:58


@[pedestrian_](/user/487620) dep[u] 为什么小于等于 dep[s]
by Rosick @ 2023-11-09 17:28:21


@[pedestrian_](/user/487620) 懂了,因为dep[s]如果小于dep[u],它就不在u的子树上,也就不会作用于它,orz
by Rosick @ 2023-11-09 18:58:00


|