华为OD题解:工作安排 | 最大报酬
题目
小明每周上班都会拿到自己的工作清单,工作清单内包含 n 项工作,每项工作都有对应的耗时时间(单位 ℎ )和报酬,
工作的总报酬为所有已完成工作的报酬之和,那么请你帮小明安排一下工作,保证小明在指定的工作时间内工作收入最大化。
输入
输入的第一行为两个正整数 T,n。
T 代表工作时长(单位 ℎ,0<T<1000000 ),
n 代表工作数量( 1<n≤3000 )。
接下来是 n 行,每行包含两个整数 t, w。
t 代表该工作消耗的时长(单位 ℎ, t>0), w 代表该项工作的报酬。
输出
输出小明制定工作时长内工作可获得的最大报酬。
示例一
输入
40 3
20 10
20 20
20 5
输出
30
编码思路
这是一道动态规划的问题。题目给出了 n n n 个任务,每个任务的完成需要一定的时间和能获得的价值。现在有一个总时间 T T