首页 > 代码库 > 《挑战程序设计竞赛》学习笔记 (1)
《挑战程序设计竞赛》学习笔记 (1)
2.2 贪心法
- 贪心法是遵循某种规则,不断贪心选取当前最优策略的算法设计方法。
- 贪心法的求解思想是通过迭代地选取当前问题的局部最优解法来达成总体最优解,在迭代的过程中不断地产生局部最优解和下一个与之前问题同构的子问题。
- 贪心法所处理的问题总是具有最优子结构的性质:该问题的最优解包含子问题的最优解。
- 使用贪心法处理的时候如何选取贪心策略非常关键,选定正确的策略往往要求一定的洞察力,验证贪心策略的正确性可能使用数学归纳法或者反证法。
- 与搜索和动规不同,贪心法的特点是解决问题的顺序是固定的,而且不能回退。证明贪心策略在整体逻辑上一部分是为了证明贪心策略所确定的解题顺序是否可以保证得到整体最优解,但是在具体的问题中这种目的可能不是那么明显。
- 例题
- 硬币问题——入门,注意结合题目中硬币面额他考虑贪心策略
- 区间调度问题——尝试证明
- 字典序最小问题——理清思路,了解解题的一般方法,从题面中总结题干推出有用的信息
- 其他问题之 Saruman‘s Army:较易
- 其他问题之?Fence Repair:了解自顶向下/自底向上的解决思路,强化解题的一般方法(此题自己想了一下,思路还算清楚,可以记录下来供以后参考)
- 练习题
- 区间
- POJ 2376:Clean Shifts
- POJ 1328:Radar Installation
- POJ 3190:Stall Reservations
- 其他
- POJ 2393:Yogurt Factory
- POJ 1017:Packets
- POJ 3040:Allowance
- POJ 1862:Stripies
- POJ 3262:Protecting the Flowers
- 区间
《挑战程序设计竞赛》学习笔记 (1)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。