题号:NC21370
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld
题目描述
牛牛和牛妹是好朋友,他们在同一个公司工作,两人都是公司大佬,现在他们有totalWork个单位的总工作量, 总工作量可以分成若干个子工作量,不一定是整数
当然作为大佬,牛牛和牛妹是不会具体去做事情的,他们公司有n个雇员,标号为0到n-1,每个雇员有两个信息
a[i]:一个小时内能完成的工作量
p[i]:每完成一个单位的工作量需要付给这个雇员的钱
牛牛和牛妹必须挑选恰好K个雇员,由于法律规定,每个员工的工作时间必须一样
所有的工作都是在一台机器上进行的,牛牛和牛妹没有这样的一台机器,所以他们去租了一台,机器可以被租借任意秒钟(可以是浮点数)
租金为一块钱一秒
由于只有一台机器,所有的雇员必须一个个去机器上干活
求最少需要花多少钱完成所有工作量
注意花钱有两部分,一部分给雇员,一部分租机器
输入描述:
第一行输入3个整数n,K (1 ≤ n ≤ 50, 1 ≤ K ≤ n, 1 ≤ totalWork ≤ 100000)
第二行输入n个整数ai (1 ≤ ai ≤ 100000)
第二行输入n个整数pi (1 ≤ pi ≤ 100000)
输出描述:
输出一个浮点数,误差在1e-9以内
示例1
说明
只有一个雇员,必须选择
10个单位的工作时间要付他10 * 20 = 200. 需要花费 10/10 = 1 小时. 机器租一小时 = 3600秒, 3600 元.
200 + 3600 = 3800
示例3
输入
复制
3 2 300
10 20 47
15 20 98765
说明
2号雇员的战斗力最强, 但是实在太贵了
最优方案是选择0号和1号雇员
10个小时时间内0号雇员得到100个工作单位,1号雇员得到200个工作单位
付 100*15 元 给 0号雇员, 200*20 元给1号雇员, 72000 元 租20个小时的机器.
示例4
输入
复制
10 4 1000
1 2 3 4 5 6 7 8 9 10
20 30 40 58 60 70 80 90 100 150
备注:
子任务1: n <= 10
子任务2: n <= 20
子任务3: 无限制