CF1881F __vector__ · 2023-10-15 15:22:31 · 题解 听(我妈)说有人想跟我探讨这题做法,就写这题较为详细题解了。 先钦定 1 是根节点。 可以先将每个点的答案分别计算出来最后取最小值。 为了方便计算,自然能想到分子树内和子树外分别计算,具体地,设 f_i 表示 i 为根的子树内离 i 最远的关键点的距离,设 g_i 表示 i 为根的子树以外离 i 最远的关键点的距离。 考虑 $g_i$,有两种转移。设 ${fa}_i$ 表示 $i$ 的父节点,${bro}_i$ 表示 $i$ 的兄弟节点。 - 从父节点继承,即 $g_i = g_{fa_i} + 1$。 - 从兄弟节点继承,即 $g_i = g_{bro_i} + 2$。 完结。 https://codeforces.com/contest/1881/submission/227980730