树形dp
zyz_3_14159
这个作者很懒,什么都没留下…
展开
-
HDU-1011-树形dp
题目大意:有一颗n个节点的树,每个节点有它的bugs和val,消灭一个bug需要20个士兵,最初有m个士兵,问能够获得最大的val和是多少; 题目解析:树形dp,dp[i][j]表示以i为root能够获得最大val值,注意循环的时候要确保根哪里留了足够的士兵; AC代码: #include #include #include #include #include using namespace原创 2016-12-15 21:02:27 · 250 阅读 · 0 评论 -
POJ-1947-树形dp+01背包
题目大意:给定一棵树,问最少删去几条边能使得有一部分被分离出来的子树的节点个树为k的; 题目解析:定义dp[i][j]为当前在第i个节点使得以他为根的子树有j的节点所删掉最少的边树,那么枚举他的所有儿子的时候,如果不要这个子树那么dp[root][j]就需要+1,否则就是个01背包了;最后如果根不是整棵树的根的时候还需要+1,因为需要把它从它的父亲节点断掉; AC代码: #include #原创 2016-12-16 18:37:00 · 279 阅读 · 0 评论 -
HDU-4003-树形dp
题目大意:给定一个n个节点的树和初始节点s,在初始节点上有k个机器人,现在要使得所有机器人遍历所有边,问最小花费是多少; 题目解析:首先考虑如果只有一个机器人并且需要最后返回原点,那么一共需要花费2*sum的值,定义dp[i][j]为在i上安排j个机器人可以减少的最多花费,那么答案就是2*sum-dp[s][k],现在假设在第u个节点上,v为它的儿子,如果v上安排了x个,那么最终答案会减少(2-原创 2016-12-16 19:28:26 · 263 阅读 · 0 评论 -
POJ-2486-树形dp
题目大意:给定一棵n个节点的树,初始位置在1,问走k步最多能获得多少苹果; 题目解析:因为肯定有的路径是返回,有的路径是不返回的,所以这里就需要定义两个dp;dp1[i][j]表示在第i个节点有j步最后返回i,dp2不返回; 状态转移方程如下: dp1[root][j]=max(dp1[root][j],dp1[root][j-k-2]+dp1[v][k]);在v中返回; dp2[root原创 2016-12-16 21:00:48 · 216 阅读 · 0 评论 -
POJ-1655-树形dp
题目大意:求一个树的重心; 题目解析:定义dp[i]表示如果以第i个节点为重心,那么最大链是多少,num[i]表示以他为根的子树一共有多少个节点,那么dp[u]=max(dp[u],num[i]),最后dp[u]=max(dp[u],n-num[u); AC代码: #include #include #include #include #include using namespace std原创 2016-12-15 12:47:39 · 211 阅读 · 0 评论 -
HDU-4714-树形dp
题目大意:给定一棵树,每次删边或者增边代价为1,问把这棵树变成一个环最小代价是多少; 题目解析:删边肯定就要增边,所以答案的形式最后肯定是2*m+1,我们就需要求m的最小值;每次dfs的时候若果son的个数>=2,如果root是跟,那么需要删除n-2条边,如果不是根,我们的目标是把这棵树变成一根单链,所以先把跟root的这条边删掉,然后再删除n-2条边,所以一共是n-1条边,最后答案需要乘2+1原创 2016-12-15 14:40:16 · 496 阅读 · 0 评论 -
codeforces-743D-树形dp
题目大意:给定一棵树,有两个人分别取一个顶点并且它的所有子树,并且这两个人取得部分不可以有重复,问两人取得权值总和最大是多少; 题目解析:先dfs一次另val[i]表示取第i个顶点和它的子树总和是多少,再dfs一次令dp[i]表示在他所包含的子树中,最大值是多少;第三次dfs更新答案ans,dfs到一个点如果有多个儿子的话,就取出他们之中最大的两个dp加起来更新ans; AC代码: #inc原创 2016-12-15 14:52:48 · 321 阅读 · 0 评论 -
POJ-1155-树形dp
题目大意:给定一棵有n个结点的树,其中1为发射台,m个中转站,剩下的是客户端,每条边都有权值,并且多次经过只会花费一次,并且客户端有收入val[i],问在使得电视台不亏损的情况下,最多能让几个客户端收到信号; 题目解析:定义dp[i][j]表示在以i为根节点的子树当中有j个客户端适用的最大收入,那么这就是个树上的背包问题了; AC代码: #include #include #include原创 2016-12-15 20:23:27 · 181 阅读 · 0 评论