“科林明伦杯”哈尔滨理工大学第十届程序设计竞赛——A.点对最大值【换根DP】
题目传送门题解比较简单的换根DP,很容易想到。我们可以维护 dp[i]:dp[i]:dp[i]: 以i为根的子树中最长的链(不包括节点i的值)。对于任意结点 uuu ,我们需要子树中 最长的链mmx 和 次大的链mx那么我们可以每次处理完节点 uuu 的子树后,更新 ans=mmx+mx+dp[u]ans = mmx + mx + dp[u]ans=mmx+mx+dp[u],然后更新 dp[u]=mmxdp[u]=mmxdp[u]=mmx。由于避免 dp[i]dp[i]dp[i] 所表示
复制链接