#P4281. 第3题-制定项目计划

第3题-制定项目计划

题目内容

一个项目经理需要对项目进行计划制定,现有 nn 个项目,每个项目有一个开始时间 startTime[i]startTime[i]、结束时间 endTime[i]endTime[i] 以及所需投入的人力 effort[i]effort[i] ,完成每个项目能获得的收益为 profit[i]profit[i]

项目团队可以投入的最大工作量为 maxEffortmaxEffort ,并且在时间上重叠的项目不能同时开展。

如果一个项目在时间 XX 结束,可以立刻承接在时间 XX 开始的新项目。

请编写一个函数,计算在不超过可以投入最大工作量为 maxEffortmaxEffort 的情况下,合理安排计划获得的最大收益。

输入描述

函数包含 55 个参数,前四个数组参数,长度相同且 2000≤ 2000,数值均 109≤10^955 个参数分 55 行输入,数组数据以 ",," 分割,示例如下:

1、开始时间数组 startTime,0startTime,0≤ 数组长度及数据 2000≤2000 ,示例: 11 55 99 ;

2、结束时间数组 endTime0endTime,0≤ 数组长度及数据 2000≤2000 ,示例: 33 77 1111 ;

3、所需投入的工作量 effort0effort,0≤ 数组长度及数据 2000≤2000 ,示例:2020 3030 1010 ;

4、以及获得收益数组 profitprofit00≤ 数组长度及数据 2000≤2000 ,示例:2020 8080 3030 ;

5、可以投入最大工作量 maxEffort0maxEffort1000maxEffort,0 ≤ maxEffort ≤1000 ,示例:4040

输入完整示例如下:

1,5,91,5,9

3,7,113,7,11

20,30,1020,30,10

20,80,3020,80,30

4040

输出描述

在不超过每日工作量上限的情况下,安排合理计划获得最大收益

样例1

输入

2 4 7
6 8 11
20 20 20
30 90 30
40

输出

90

说明

选择第二个项目,由于时间与其他项目时间重叠

无法选取其他项目,总精力为 20<=4020<=40 ,总收益为 9090

样例2

输入

1 5 9
3 7 11
20 30 10
20 80 30
40

输出

110

说明 选择第二个和第三个项目,总精力为 30+10=40<=4030+10=40<=40 ,总收益为 80+30=11080+30=110