本文章由 WyOJ Shojo 从洛谷专栏拉取,原发布时间为 2024-04-09 21:11:28
做的大概是第二到第三道基环树的题,明显对环的一系列操作不熟悉。
我们知道,作为有向图,要做到两点互相连通,一定是形成一个环。同时显然,题目中所给的是一个基环森林,我们需要把每个基环树断成链,然后把它们首尾相接就可以了。具体断哪条边,需要在环上 DP。
按照基环树的一般策略,把环当作根,然后对环上每一个点跑树形 DP,把重链抽出来显然是最优的。我们可以计算其他点权和,计入贡献。
然后我们考虑环上怎么处理。对于每一个点,有两种情况:断掉 $u$ 到环上前驱 $v$ 的边,使环变成一个链;或者是断掉 $v$ 的重儿子,维护当前形态。
分讨转移即可。

鲁ICP备2025150228号