Work Scheduling 工作安排
- Description
为了让农场有效运转,约翰必须靠自己工作来赚钱。他接到了N项任务,完成每项任务 都要花费一个单位的时间。第i项任务的截止时间为Di,如果能按时完成,可以得到报酬Pi。约翰从0时刻开始工作,由于他在同一个时间内只能从事一项任务,所以他很难按时完成所 有任务。请帮助约翰计算一下,他最多可以赚多少钱?
- Input Format
第一行:单个整数:N,1≤N≤10^5第二行到N+1行:在第i+1行有两个用空格分开的整数:Di和Pi,1≤Di, Pi≤10^9
- Output Format
第一行:单个整数,表示约翰可赚得的最多钱
- Sample Input
3
2 10
1 5
1 7
- Sample Output
17
- Hint
先做第三个任务,再做第一个任务
- 分析
贪心思想,能按时完成的就按时完成,不能按时完成的就把之前价值最小的和当前作比较,取最优的情况。
#include <queue>
#include <stack>
#include <cstdio>
#include <cstring>

该博客讨论了USACO竞赛中的工作安排问题,约翰需要在限定时间内完成多项任务以获得最高报酬。每项任务都有截止时间和报酬。由于同一时间只能做一项任务,策略是优先处理能按时完成的任务,若无法按时完成,则舍弃价值最低的任务。通过贪心算法,可以找到能赚取最多钱的方案。例如,先完成价值最高的任务,然后是次高任务,以此类推。
最低0.47元/天 解锁文章
605

被折叠的 条评论
为什么被折叠?



