摘要: 最优子结构:对比DFS,不是进行各种可选支路的试探,而是当下就可用某种策略确定选择,无需考虑未来(未来情况的演变也影响不了当下的选择)。只要一直这么选下去,就能得出最终的解,每一步都是当下(子问题)的最优解,那么最终得出的结果就是问题的最优解,这叫做最优子结构。 更书面的说法:如果问题的一个最优解中 阅读全文
posted @ 2019-02-12 19:47 |旧市拾荒| 阅读(351) 评论(0) 推荐(0)
摘要: 题目一: 最优装载问题,给出n个物体,第i个物体重量为wi。选择尽量多的物体,使得总重量不超过C。 经过前面的学习很容易想到贪心策略,那就是每次选重量最轻的物体,那么物体数就最多。 代码: 题目二: 部分背包问题,有n个物体,第i个物体的重量为wi,价值为vi。在总重量不超过C的情况下让总价值尽量高 阅读全文
posted @ 2019-02-12 18:06 |旧市拾荒| 阅读(5094) 评论(0) 推荐(0)
摘要: 题目: 字典序最小问题,给一个定长为N的字符串S,构造一个字符串T,长度也为N。起初,T是一个空串,随后反复进行下列任意操作:1. 从S的头部删除一个字符,加到T的尾部 2. 从S的尾部删除一个字符,加到T的尾部。目标是最后生成的字符串T的字典序尽可能小。1≤N≤2000。字符串S只包含大写英文字母 阅读全文
posted @ 2019-02-12 17:17 |旧市拾荒| 阅读(764) 评论(0) 推荐(0)
摘要: 题目: 题目的大概意思是约翰这个农民有N条牛,这些牛可以在一天中的某个时间段可以进行工作,他想把这个时间段分成若干个片段让这些牛去进行打扫任务,你的任务是安排尽量少的牛然后可以完成分成这些片段的打扫任务。 输入: 第一行两个数,第一个数代表牛的个数N,第二个数代表时间T,表示的是时间段[1,T]。 阅读全文
posted @ 2019-02-12 11:59 |旧市拾荒| 阅读(1073) 评论(0) 推荐(0)
摘要: 题目: 题目的大致意思是,给定n个闭区间,并且这个闭区间上的点都是整数,现在要求你使用最少的点来覆盖这些区间并且每个区间的覆盖的点的数量满足输入的要求点覆盖区间的数量。 输入: 第一行输入n,代表n个区间。 接下来的n行每行的第一个数代表区间起点,第二个数代表区间终点,第三个数代表这个区间必须要选取 阅读全文
posted @ 2019-02-12 10:47 |旧市拾荒| 阅读(2251) 评论(0) 推荐(0)