题解 - P 6419 \mathrm{P6419} P6419
题目意思
S o l \mathrm{Sol} Sol
-
因为要求每个点为根的答案,显然会想到换根 D P DP DP(虽然不一定
-
我们首先先申明几个变量:
-
f u f_u fu表示把 u u u子树内的任务做完并且回到 u u u点的花费
-
g u g_u gu表示 u u u子树外的花费
-
d i s u , 0 / 1 dis_{u,0/1} disu,0/1表示 u u u子树内的最长链/次长链
-
u p u up_u upu表示 u u u子树外的最长链
-
-
那么对于每个点的贡献 a n s i = f i + g i − max ( u p i , d i s i , 0 ) ans_i=f_i+g_i-\max(up_i,dis_{i,0}) ansi=fi+gi