树形dp
Lazines_by
好吧,我要工作了
展开
-
uva 12186
https://vjudge.net/problem/uva-12186题意: 给出一颗树,最高的节点是0,要求让每个人签字的话必须他的所有的下一层儿子的数目的至少T%的人签字,问要使得0签字,至少要多少人签字呢?思路: 对于每个人,用dp[i]表示i这个节点至少需要多少人的签字,然后用dfs从根进行搜索,更新的时候是在回溯的时候进行从叶节点一层一层往上进行更新,可以算出每原创 2017-04-06 14:43:25 · 318 阅读 · 0 评论 -
uva 1220树的最大点独立集
https://vjudge.net/problem/uva-1220题意: 找出一个树的最大点独立集,并输出这个最大点独立集是否唯一思路: dp[i][0]表示未把i这个点加入独立集的独立集的数量,dp[i][1]表示吧这个点加入到这个点独立集的时候独立集的数目;那么可以得出状态转移方程:dp[i][1] = sum(dp[v][1]),v为i的下一层的点;dp[i]原创 2017-04-06 21:18:01 · 328 阅读 · 0 评论 -
树形DP求树的最小支配集,最小点覆盖,最大独立集
转载自:https://www.cnblogs.com/Ash-ly/p/5783877.html一:最小支配集考虑最小支配集,每个点有两种状态,即属于支配集合或者不属于支配集合,其中不属于支配集合时此点还需要被覆盖,被覆盖也有两种状态,即被子节点覆盖或者被父节点覆盖.总结起来就是三种状态,现对这三种状态定义如下:1):dp[i][0],表示点 i 属于支配集合转载 2018-02-02 09:47:24 · 256 阅读 · 0 评论