其他题解只给了转移方程而没有给清楚为什么是这样的 我在这就简要的分享一下自己的想法吧 首先这是一棵树 我们定义 三种状态: 0.我自己不选,我有儿子选 1.我自己不选,我父亲选 2.我自己选 0状态需要建立反悔机制,因为我只需要一个儿子选, 先推导 dp[x][0]=min(dp[v][0],dp[v][2]); 注意:因为当前节点是不选的,所以他儿子是父亲选择的状态不应该列入考核范围内。 这个式子推出来后可能照成的结果是儿子都没选 那我不就凉了 建立反悔, t=min(t,dp[v][2]-min(dp[v][0],dp[v][2])) 保证一定有一个是儿子选了的,而且如果不本身就有儿子...