[联合省选2022]最大权独立集问题

Posted StaroForgin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[联合省选2022]最大权独立集问题相关的知识,希望对你有一定的参考价值。

最大权独立集问题

题解

相当有趣的一道dp题。
我考场上全花时间去搞前两题了,T3只rush了一个暴力,亏大分。

首先我们可以考虑将原来的边交换的条件转化一下。
相当于我们要给每一个点规定一条不经过重复点的有向路径,使得所有点的路径加起来可以覆盖满整棵树。
显然,我们很容易通过这得到一种 d p dp dp的思路。
可以发现,从子树节点的父亲往子树内覆盖的路径只会有一条,从子树内向父亲传递的点也只会有一个。
所以我们 d p dp dp时不妨就记录这个路径回到哪一个点,子树内向上传递又会传递哪一个点。
显然,在一个点上我们需要枚举的就是选择边的顺序,是先父边,先左儿子,还是先右儿子,通过这从底向上转移。
但这样的话我们的 d p dp dp状态总数是会达到 n 3 n^3 n3的,貌似不太能过的样子。
但不要着急,显然,传递到的点与向上传递的点不会在一棵子树内,该状态只会出现在这两个点的 l c a lca lca处。
所以,我们的状态数实际上是 n 2 n^2 n2的。
但我们上面的 d p dp dp状态是可以继续被优化的,因为最后被传递到的位置我们真正关心的只有它的深度,我们把这个深度记到状态里面即可。

好的,我们现在 d p u , x , d dp_u,x,d dpu,x,d表示我们现在对于点 u u u的子树内,我们将会把点 x x x传到它的父亲去,并且父亲传下来的点往下传长度为 d d d的路径。
通过考虑边交换的执行顺序,容易得到 d p dp dp转移式:
d p u , u , d 1 = d p l s o n , x , d 1 − 1 + d p r s o n , y , d 2 + ( d 2 + 2 ) v a l x + v a l y d p u , u , d 1 = d p r s o n , x , d 1 − 1 + d p l s o n , y , d 2 + ( d 2 + 2 ) v a l x + v a l y d p u , x , d 1 = d p l s o n , x , d 2 + d p r s o n , y , d 1 − 1 + ( d 2 + 1 ) v a l u + v a l y + v a l x d p u , x , d 1 = d p r s o n , x , d 2 + d p l s o n , y , d 1 − 1 + ( d 2 + 1 ) v a l u + v a l y + v a l x d p u , x , 0 = d p l s o n , y , d 1 + d p r s o n , x , d 2 + ( d 1 + 1 ) v a l u + ( d 2 + 2 ) v a l y + v a l x d p u , x , 0 = d p r s o n , y , d 1 + d p l s o n , x , d 2 + ( d 1 + 1 ) v a l u + ( d 2 + 2 ) v a l y + v a l x dp_u,u,d_1=dp_lson,x,d_1-1+dp_rson,y,d_2+(d_2+2)val_x+val_y\\\\ dp_u,u,d_1=dp_rson,x,d_1-1+dp_lson,y,d_2+(d_2+2)val_x+val_y\\\\ dp_u,x,d_1=dp_lson,x,d_2+dp_rson,y,d_1-1+(d_2+1)val_u+val_y+val_x\\\\ dp_u,x,d_1=dp_rson,x,d_2+dp_lson,y,d_1-1+(d_2+1)val_u+val_y+val_x\\\\ dp_u,x,0=dp_lson,y,d_1+dp_rson,x,d_2+(d_1+1)val_u+(d_2+2)val_y+val_x\\\\ dp_u,x,0=dp_rson,y,d_1+dp_lson,x,d_2+(d_1+1)val_u+(d_2+2)val_y+val_x dpu,u,d1=dplson,x,d11+dprson,y,d2+(d2+2)valx+valydpu,u,d1=dprson,x,d11+dplson,y,d2+(d2+2)valx+valydpu,x,d1=dplson,x,d2+dprson,y,d11+(d2+1)valu+valy+valxdpu,x,d1=dprson,x,d2+dplson,y,d11+(d2+1)valu+valy+valxdpu,x,0=dplson,y,d1+dprson,x,d2+(d1+1)valu+(d2+2)valy+valx以上是关于[联合省选2022]最大权独立集问题的主要内容,如果未能解决你的问题,请参考以下文章

HDU 1565:方格取数(最大点权独立集)***

[luoguP2774] 方格取数问题(最大点权独立集)

hdu 1569 &1565 (二分图带权最大独立集 - 最小割应用)

HDU 1569 - 方格取数 - [最大点权独立集与最小点权覆盖集]

HDU 1565 1569 方格取数(最大点权独立集)

HDU 1569 方格取数 << 最大点权独立集