8.4晚做题感悟

xiaoxiao2021-02-27  242

第一次写这种博客,可能写得不好,请见谅

最近想做做一些树上的问题,今天找了一个环套树的题骑士(ZJOI2008)

题意

有n(n<=10^6)个人,每个人都有自己的战斗力和他最讨厌的人

要求选出若干人,在任意两人都没有出现讨厌的情况下,战斗力的和最大

可能为一个环套森林

分析

我们可以使用树形dp

如果树上没有环呢?

f[i][0]+=max(f[k][0],f[k][1]);f[i][1]+=f[k][0]; k为i的儿子

我们先考虑单个的环套树(因为最后的环套森林的最优解即为各个环套树最优解的和)

先用dfs求出环的部分,只需要求出环上的两点即可

然后断边,用树形dp求解

代码

代码到底放不放我也不清楚,看看评论再说吧

转载请注明原文地址: https://www.6miu.com/read-11446.html

最新回复(0)