题解: Poborcy podatkowi

· · 题解

双倍经验

题意简述:

给定一棵 n 个点的树,你可以选择若干条长度恰好为 4 的不交链,可以不选。

方案的收益定义为选出的链的并集的边权和,求最大收益。

思路

首先一种显然的思路是dp, 我们非常自然的可以设f_{i, 0/1/2/3}表示到i点的时候上传一个0/1/2/3长度的最大收益.

我们考虑怎么转移.

转移的时候, 我们钦定一个点作为我们上传的边的来源(f_0不需要), 从这个点的f_0/1/2转移. 但是这个时候我们还有许多个子树没有决定. 我们分类讨论, 考虑在这一层使用背包的思想.

如果这个子树想要上传一个长度为3的链, 那么我们直接统计进入答案. 如果这个子树想要上传一个长度为2的链, 那么我们考虑让它和一个长度为0的链合并. 长度为0的链同理. 如果这个子树想要上传一个长度为1的链, 那么它还需要和一个长度为1的链合并.

那么对于每一个父节点, 我们可以设出式子

我们考虑优化. 这里有一个结论, 对于一个每一位只会+1/-1的序列, 我们对它进行前缀和, 那么前缀和最大项的期望是$\sqrt n$的. 感性理解一下这个东西(也就是我们dp的第二维)不会很大, 那么我们第二维开$\sqrt n$即可. 但是这样可以被构造数据卡死. 我们对于儿子的顺序随机打乱即可. 然后我们便AC了一道紫题. ~~555考场上面感觉组合不可做就放了根本没有想到背包~~ ~~后排膜拜题解区大佬~~