andre_joy

导航

2012年10月11日

hdu 2196

摘要: 地址:http://acm.hdu.edu.cn/showproblem.php?pid=2196题意:有很多机器通过一棵树连在一起,每条边有一个权值,求每个机器距离最远的路径是多长。mark:这是一个典型的起点不固定的树形dp。我们首先想到的肯定是枚举所有顶点,但是这样计算会有很多重复计算,我们做dp就是为了减少重复计算。 于是我们可以先把它当成一个以任意节点(一般都以编号为1的节点)当根节点做一次dp,dp[i]代表以i为根的子树的最大权值。做完一次后根节点(节点1)肯定已经是最优的了,那么我们现在要想办法更新其他的节点,假如现在要更新节点1的儿子节点son,那么我们首先要计算出除了... 阅读全文

posted @ 2012-10-11 09:59 andre_joy 阅读(785) 评论(0) 推荐(0) 编辑

hdu 1520

摘要: 地址:http://acm.hdu.edu.cn/showproblem.php?pid=1520题意:举办一个party,候选人当中有很多人之间有上下级关系,求没有直接上下级的最多的人数。mark:简单的树形dp题,从每个人的状态着手考虑,每个人要么参加,要么不参加,那么状态dp[i][0]代表参加,dp[i][1]代表不参加。 dp[i][0] += dp[son][1]; dp[i][1] += max(dp[son][1], dp[son][0]);代码:#include <stdio.h>#include <string.h>#include <stdl 阅读全文

posted @ 2012-10-11 08:04 andre_joy 阅读(350) 评论(0) 推荐(0) 编辑