摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2196题意:仔细分析题意可知n(n<=10000)台计算机形成一棵树,每条边都有权值,求每台计算机传递信息最远可传多远,用图论解的话数据量太大,搜索,最长路都会超时的。况且是树,很有特点这个题是看完题解敲的,算是第二个树形DP进行两次dfs,第一次向下求出每个节点到其子树的最长距离和次长距离,第二次dfs通过向上(父节点)更新最长和次长距离,,,叙述的那么乱呢其中的思想该仔细体会代码:#include<iostream>#include<cstdio>#include<cs 阅读全文
posted @ 2012-10-15 23:28 快乐. 阅读(172) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1520题意:n个点构成一棵树,每个点都有一个权值,从中选出一些点,使权值之和最大,所选择的点不能直接相连,即不能是父子关系算是树形DP的入门题吧dp[i][0]表示不选i点,dp[i][1]表示选择该点dp[i][0]=sum(max(dp[j][0],dp[j][1])) j是i的子节点dp[i][1]=sum(dp[j][0])+val[i]; 代码:#include<iostream>#include<cstdio>#include<cstring>#include& 阅读全文
posted @ 2012-10-15 23:17 快乐. 阅读(121) 评论(0) 推荐(0) 编辑