摘要: 题意:在一棵带权树上要切断若干条边使得根节点与所有叶子结点都不联通,且花费不能超过m。问你切掉边中最大的权值最小的是多少。思路:二分最大权值,验证答案。每次选择当前结点下面一条边或者是当前子树多有叶子结点不连通的最小值。叶子结点的只为INF(这里被坑了无数次!!!最大值不能太大每次累加起来就越界了,我错了10次有木有)。代码如下: 1 /************************************************** 2 * Author : xiaohao Z 3 * Blog : http://www.cnblogs.com/shu-xiaohao/... 阅读全文
posted @ 2014-04-03 23:48 张小豪 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 题意:从一颗树的根出发走k步最多能摘到的苹果。思路:树形dp 参考了吴神的博客讲的很清楚了http://www.cnblogs.com/wuyiqi/archive/2012/01/09/2316758.html 1 /************************************************** 2 * Author : xiaohao Z 3 * Blog : http://www.cnblogs.com/shu-xiaohao/ 4 * Last modified : 2014-04-03 20:09 5 * Filename : p... 阅读全文
posted @ 2014-04-03 21:24 张小豪 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题意:一棵带权树,有K个机器人从原点S出发,问最小花费多少才能遍历所有结点。思路:树形DP题,一开始想到的状态是三维的,仔细思考一下发现会超时,后来参考了网上的解题报告,发现了回来的机器人最多只要一个(如果有多个的话必定可以证明花费多于一个的)这样用dp[i][0]表示有一个机器人回来的情况,1-k表示用k个机器人遍历以i为根的子树的最小花费。代码如下: 1 /************************************************** 2 * Author : xiaohao Z 3 * Blog : http://www.cnblogs.com/... 阅读全文
posted @ 2014-04-03 19:53 张小豪 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题意:有一些货币告诉你每种的数量与币值。让你算在m内能组合成的的数值个数。思路:数据量比较大,用多重背包的做法是会超时的,所以我们需要用二进制优化,记得以前听过这种写法,但是没有写过。今天终于做到这种题了第一次写参考了http://blog.csdn.net/hellobabygogo3/article/details/8013350 主要思路就是用二进制能组成所有v[i]以下的数。代码如下: 1 /************************************************** 2 * Author : xiaohao Z 3 * Blog : htt... 阅读全文
posted @ 2014-04-03 00:08 张小豪 阅读(254) 评论(0) 推荐(0) 编辑