贪心算法:截止日期问题
【问题描述】
某学科老师布置了n个题目,每个题目都有相应的分数及截止日期。各个题目的分数及截止日期可能并不相同。对某题目而言,如果在该题目的截止日期前完成则可获得对应的分数,否则无法得分。假设每个题目均需要花费一天的时间来完成,这期间无法完成其他题目。请你设计算法指定题目的完成计划,从而使总的得分最大。
下面给出一个包含了7个题目及相应的分数、截止日期的实例:
对该实例而言,得分最大的作业完成方案为花费4天时间依次完成题目2,6,3,7。得分为15。
【输入形式】
输入数据第一行为一个整数n (0 <= n <= 10000), 表示题目数目
之后n行各有两个整数, 第i行为 pi, di (1 <= pi, di <= 10000),分别表示第i个题目的分数和截止时间
【输出形式】
一个整数, 为当前条件下的最大得分
【样例输入】
4
50 2
10 1
20 2
30 1
【样例输出】
80
【问题解答】
-
基于贪心算法的思路,一个大问题首先分解为各个小问题,最优解由局部最优解得来,小问题之间没有相互关联。
-
此题中输入的日期有个最大值,即最晚的截止日期,例如样例中的2,即为本题的截止日期。
-
假设当前为第二天,那么第二天及