#CSP202603B. 机器人项目管理

机器人项目管理

原题的题目描述一章是插入视频描述的,本题面只截取关键的文字描述和图片。

时间限制: 1.0 秒

空间限制: 512 MB

题目描述

小 P 计划招募 nn 个机器人完成一个项目:每个机器人负责其中的一项任务,编号从 11nn,任务之间互不干扰。如果完成任务 ii 的耗时为 tit_i,则该项目总耗时为 t1+t2++tnt_1 + t_2 + \cdots + t_n

作为项目管理者,小 P 可以用有限的预算为机器人们购买咖啡加油。其中负责任务 ii 的机器人,最多可以喝 aia_i 杯咖啡,从而将该任务耗时缩短 bib_i(最终耗时即为 tibit_i - b_i)。

根据任务的特性和机器人的偏好,nn 项任务可分为“灵活型”和“普通型”两类

灵活型:如果任务 ii 是灵活型,则可以提供给该任务 [0,ai][0,a_i] 范围内的任意实数杯咖啡,从而将其加速相应比例。

若给任务 ii 提供 kiaik_i\cdot a_i 杯咖啡,则该任务对应耗时 tikibi (0ki1)t_i-k_i\cdot b_i\ (0\le k_i\le 1)

示例如下,当 ai=5,bi=10,ti=20a_i=5,b_i=10,t_i=20 时:

普通型:只能提供给任务 00aia_i 杯咖啡。

换言之,只有将耗时缩短 bib_i 和不加速两种选择,而不能提供半杯咖啡。

示例如下,当 ai=5,bi=10,ti=20a_i=5,b_i=10,t_i=20 时:

已知小 P 可以为机器人们提供最多 mm 杯咖啡,试计算完成整个项目的最短时间。

输入格式

从标准输入读入数据。

输入的第一行包含空格分隔的两个正整数 nnmm,分别表示任务数量和咖啡数量。

接下来 nn 行,每行包含空格分隔的四个整数 oi,ti,ai,bio_i,t_i,a_i,b_i,表示一个任务。其中 oi{0,1}o_i \in \{ 0, 1 \} 表示任务类别,oi=0o_i = 0 表示灵活型、oi=1o_i = 1 表示普通型;其余变量含义如上所述,输入数据保证 ti>bit_i > b_i,即缩短后的耗时仍大于零。

输出格式

输出到标准输出。

输出一个实数,表示完成整个项目的最短时间。

3 5
0 2 3 1
0 3 4 2
0 4 5 2
6.6

样例 1 解释

三个任务均为灵活型,初始总耗时为 2+3+4=92+3+4=9。最优方案为:给任务二分配 44 杯咖啡,耗时缩短 22;给任务三分配 11 杯咖啡,耗时相应缩短 25=0.4\frac{2}{5}=0.4。综上,完成整个项目最短时间为 920.4=6.69 - 2 - 0.4 = 6.6

5 62
0 10 2 1
0 10 1 1
1 500 40 360
1 600 50 500
1 400 20 150
1008.5

样例 2 解释

初始总耗时为 15201520。最优方案为:给任务三分配 4040 杯咖啡,耗时缩短 360360;给任务五分配 2020 杯咖啡,耗时缩短 150150;给任务一和二各分配 11 杯咖啡,耗时分别缩短 0.50.511。综上,完成整个项目最短时间为 15203601500.51=1008.51520 - 360 - 150 - 0.5 - 1 = 1008.5

子任务

80%80 \% 的测试点满足:所有任务均为灵活型任务,且对于每个任务 ii0<ai200 < a_i \le 20

全部的测试点满足:0<n200, 0<m10000 < n \le 200,\ 0 < m \le 1000,且对于每个任务 ii0<ai100, 0<bi<ti1040 < a_i \le 100,\ 0 < b_i < t_i \le 10^{4}

评分方式

输出结果与标准答案相比绝对误差小于 0.0010.001 即可,推荐保留六位小数输出结果。