摘要:
树DP经典问题,公司聚会,下属和直属上司不能共存,给出每个人的快乐值,再给出每个人的编号和他的上司,选出一些人参加聚会使快乐值最大/*从叶子开始选择,每个节点只有选不和不选两种可能,dp[rt][0],dp[rt][1]分别表示选和不选该节点dp[rt][1]=sum{ dp[son][0] }+val[rt] , 因为跟选了它的儿子就全部不能选dp[rt][0]=sum{ max{dp[son][0] , dp[son][1]} }如果根不选,那么儿子的选择就多样化了,每个儿子又是互不干扰的所以令每个儿子最优,加起来根就是最优的,而每个孩子无非还是选和不选,一比较就能得到每个儿子的最优方案而 阅读全文