什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划,使用贪心算法需要满足更多的条件(贪心选择性质),但是效率比动态规划要高。 比如说一个算法问题使用暴力解法需要指数级时间,如果能使用动态规划消除重叠子问题,就可以降到多项式级别的时间,如果满足贪心选择性质,那么可以进一步降低 ...
一 贪心算法 定义:一个算法是贪心算法,如果它是通过一些小的步骤来一个求解,并且在每一步根据局部情况选择一个决定,使得某些主要的指标得到优化。 二 区间调度问题 . 问题:我们有一组需求 , , ,......,N ,第i个需求与一个开始时间s i ,结束时间f i 相对应。如果没有两个需求在时间上重叠,我们就说需求的子集是相容的。 .目标:寻找一个最大的相容子集O. . 算法: 初始令R是所有需 ...
2018-03-03 10:44 0 1302 推荐指数:
什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划,使用贪心算法需要满足更多的条件(贪心选择性质),但是效率比动态规划要高。 比如说一个算法问题使用暴力解法需要指数级时间,如果能使用动态规划消除重叠子问题,就可以降到多项式级别的时间,如果满足贪心选择性质,那么可以进一步降低 ...
这个问题是《算法导论》上的一个经典的贪心算法问题——单处理器上具有期限和惩罚的单位时间任务调度问题,目标是使惩罚最小。 输入:第一行一个数n,接下来第2行到第n+1行,第i行分别是d[i]和w[i],其中d[i]表示第i个任务的时限,w[i]表示第i个任务的惩罚,每个任务的完成时间为单位时间 ...
1.最小延迟调度问题描述 f(i) 表示某任务 开始的时间。 ti 表示 某任务 加工的时间 di 表示 某任务 要求完成的时间 延迟: f(i)+ti-di 如果 实际完成的时间 小于 规定完成时间,那么,就没有 延迟。延迟就是拖延,如果你在规定时间内(<=规定 ...
Meetings 系列一 Time Limit: 2000/1000ms (Java/Others) Problem Description: Inpu ...
1. 问题描述 某工厂收到了 n 个产品的订单,这 n 个产品分别在 A、B 两个车间加工,并且必须先在 A 车间加工后才可以送到 B 车间。某个产品 i 在 A、B 两车间加工的时间分别为 $A_i$、$B_i$。怎样安排这 n 个产品的加工顺序,才能使总的加工时间最短?这里所说的加工 ...
一、贪心算法的特点 顾名思义,贪心算法总是做出在当前看来是最好的选择。虽然贪心算法并不从整体最优上加以考虑,它所做出的选择只是在某种意义上的局部最优选择。 贪心算法的优点是更简单,更直接且解题效率更高,即使贪心算法不能得到整体最优解,但其最终结果却是最优解的很好的近似解。 二、贪心算法 ...
由于考试算法中用到贪心时需要先证明其正确性才能使用,所以本人学习了一下贪心算法的证明方法并作此笔记。 首先,在网上找到的贪心策略证明有: 考察一个问题的最优解,证明可修改该最优解,使得其从贪心选择开始,然后用数学归纳法证明每一步都可以通过贪心选择得到最优解 1,假定首选元素不是贪心选择 ...
1. 相关定义 在数学里,区间通常是指这样的一类实数集合:如果x和y是两个在集合里的数,那么,任何x和y之间的数也属于该集合。区间有开闭之分,例如(1,2)和[1,2]的表示范围不同,后者包含整数1和2。 在程序世界,区间的概念和数学里没有区别,但是往往有具体的含义 ...