题意:
公司参加聚会,要求员工不能和他的上司同时参加,求最多能参加几个人并且判断解是否唯一。
要点:
树型DP的经典题,用dp[u][1]表示选取u的最大值,dp[u][0]表示不选取u的最大值,容易得到状态转移方程为dp[u][1] += dp[v][0]和dp[u][0] += max(dp[v][1], dp[v][0]),可以看到如果dp[u][0]>dp[u][1]时,dp[v][1]==dp[v][0]会造成多解,那么我们最后遍历一遍即可判断是否有多解,还有一种情况是dp[0][1]==dp[0][0],这当然也有多解。这题用了map,稍微学了一下,还是很好用的。
15573797 | | | Accepted | 212K | 16MS | | 1336B | 2016-05-31 09:15:14 |
#include #include #include #include #include #include #include