随笔分类 -  acm动态规划-树形dp

摘要:src:http://acm.hdu.edu.cn/showproblem.php?pid=5834 题意:给定一棵树,有点权和边权,点权上的价值只能取一次,多次通过边要花费多次边权,求以每个节点为起点能获得的最大价值。 思路:第一次dfs,得到各节点往下的最大价值,然后第二次dfs考虑父节点的影响 阅读全文
posted @ 2018-08-08 16:11 WindFreedom 阅读(525) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-07-16 21:22 WindFreedom 阅读(2) 评论(0) 推荐(0)
摘要:src:http://acm.hdu.edu.cn/showproblem.php?pid=4044 dp[u][i]为u不选的时候花i元的最优解,这题考虑dp[ u ][ i ]时对于子树根u选不选分开讨论,一种方法是定义状态为dp[ u ][ i ][ 0/1 ]分别表示选/不选,但是这样转移方 阅读全文
posted @ 2018-07-15 19:40 WindFreedom 阅读(355) 评论(0) 推荐(0)
摘要:src : http://poj.org/problem?id=3140 题意:选择一条树边断开,使得分成的两部分的总点权差最小,输出最小值 就直接预处理每一个点及其子树的总点权 枚举一个点和其父亲断开,取个最优值就好了 注意long long 阅读全文
posted @ 2018-07-14 21:28 WindFreedom 阅读(133) 评论(0) 推荐(0)
摘要:src:http://acm.hdu.edu.cn/showproblem.php?pid=3586 题意:给一个限制m,切断的路径权值和不超过m,单个边权值也不超过k,求最小的k使得所有叶子和根不相连 二分一个k 对于一个确定的k,dp[u]表示u的叶子全部和u分离需要的最小花费 考虑叶子节点:d 阅读全文
posted @ 2018-07-14 16:53 WindFreedom 阅读(336) 评论(0) 推荐(0)
摘要:src: http://acm.hdu.edu.cn/showproblem.php?pid=4003 思路:dp[u][k]表示遍历完u的子树后,有k个机器人没有回到u。 对于结点u,如果机器人回来的话,派几个都是一样,所以考虑不回来的数量,而k决定了不回来个数的上限,另外 ,机器人最终都会停在叶 阅读全文
posted @ 2018-06-06 21:36 WindFreedom 阅读(127) 评论(0) 推荐(0)
摘要:src:http://poj.org/problem?id=1947 ac代码: 阅读全文
posted @ 2018-05-18 23:35 WindFreedom 阅读(126) 评论(0) 推荐(0)
摘要:src:http://acm.hdu.edu.cn/showproblem.php?pid=1011 dp[u][i]表示在结点u,消耗i军队获得的最大值。注意建树时用双向边,因为结点1不一定是树根!!! 注意m==0时特判,这个必需要,有代价为0的房间,M=0则无法获得,样例为2 0 0 20 0 阅读全文
posted @ 2018-05-16 22:10 WindFreedom 阅读(466) 评论(0) 推荐(0)
摘要:src:http://poj.org/problem?id=1155 思路:dp[u][i]指子树u取i个叶子的最优值,Max(dp[u][i],dp[u][i-k]+dp[v][k]-edge[i].v),注意是从前几个阶段转移后的最优值中选(例codeforces219D(树形dp) ,dp[u 阅读全文
posted @ 2018-05-15 20:54 WindFreedom 阅读(247) 评论(0) 推荐(0)
摘要:src:https://vjudge.net/problem/CodeForces-219D 两次dfs的特点,状态的转移要用到父节点的状态,所以分支节点在第二次dfs中才能用到父节点,而根节点在第一次dfs中就算出dp值了,因为它没有父节点,所以它的值在第二次dfs中传下去!!! 树形dp一般解决 阅读全文
posted @ 2018-05-14 21:39 WindFreedom 阅读(474) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-05-14 09:28 WindFreedom 阅读(4) 评论(0) 推荐(0)
摘要:src: http://acm.hdu.edu.cn/showproblem.php?pid=2196 解答:https://blog.csdn.net/shuangde800/article/details/9732825 dfs2中,用父节点的dp最大值或次大值来规划子节点的各状态的值!!! 其 阅读全文
posted @ 2018-05-07 22:13 WindFreedom 阅读(337) 评论(0) 推荐(0)
摘要:src: http://acm.hdu.edu.cn/showproblem.php?pid=1520 ac代码: 阅读全文
posted @ 2018-05-07 11:10 WindFreedom 阅读(121) 评论(0) 推荐(0)
摘要:src:http://acm.hdu.edu.cn/showproblem.php?pid=1561 ac代码: 阅读全文
posted @ 2018-05-07 11:08 WindFreedom 阅读(211) 评论(0) 推荐(0)
摘要:src: http://poj.org/problem?id=2486 思路:就像多重背包一样,dfs过子树后,子树就有了各种大小的代价,然后动态规划根的大小即可; ac代码: 阅读全文
posted @ 2018-05-07 11:03 WindFreedom 阅读(193) 评论(0) 推荐(0)