【刷题笔记】p3629

思路

首先对于 \(k=1\) 的情况:
可以发现在树的直径两端连一条边,一定是最优的。设直径长度为 \(L\),总共有 \(n\) 个点,易得新的花费为 \(2*(n-1)-L+1\),可以理解为用 \(1\) 条边代替了 \(L\) 条边。
再看 \(k=2\) 的情况:
可以仿照第一种情况,在一条路径两端连一条边,用这条边来代替这条路径。但是会出现一个问题,两条边构成的两个环之间重叠的部分,需要走两遍。设代替的第一条路径长为 \(L_1\),第二条为 \(L_2\),重叠部分长为 \(cnt\),易得总花费为 \(2*(n-1)-(L_1-1)-(L_2-1)+2*cnt\),将原式子等价变形,可以得到花费为 \(2*(n-1)-(L_1-1)-(L_2-1-2*cnt)\)。相当于第一次算完直径将直径上的边权由 \(1\) 改为 \(-1\) 后,再算一次直径。
完结撒花!!!

posted @ 2025-05-20 22:33  GuoSN0410  阅读(36)  评论(0)    收藏  举报