题库/YBT0260

#YBT0260. 软件开发

    传统题 难度: 提高 标签>一本通答案二分分组分配DP并行模块调度
时间限制1000 ms
内存限制128 MiB
通过率100%1 / 1 次提交
题目描述 查看题解 开始编程Alt+E

YBT0260 · 软件开发

退出在线编程模式
提高 读懂题意,让每一次思考成为成长。
时间限制1000 ms
内存限制128 MiB
通过率100%1 / 1 次提交

题目描述

一个软件开发公司同时要开发两个软件,并且要同时交付给用户,现在公司为了尽快完成这一任务,将每个软件划分成mm个模块,由公司里的技术人员分工完成,每个技术人员完成同一软件的不同模块的所用的天数是相同的,并且是已知的,但完成不同软件的一个模块的时间是不同的,每个技术人员在同一时刻只能做一个模块,一个模块只能由一个人独立完成而不能由多人协同完成。一个技术人员在整个开发期内完成一个模块以后可以接着做任一软件的任一模块。写一个程序,求出公司最早能在什么时候交付软件。

输入

输入文件第一行包含两个由空格隔开的整数nn和mm。 接下来的nn行每行包含两个用空格隔开的整数d1d_1和d2d_2,d1d_1表示该技术人员完成第一个软件中的一个模块所需的天数,d2d_2表示该技术人员完成第二个软件中的一个模块所需的天数。

输出

输出文件仅有一行包含一个整数dd,表示公司最早能于dd天后交付软件。

输入样例

3 20
1 1
2 4
1 6

输出样例

18

提示

【数据规模】 对于100%的数据,1≤n≤100,1≤m≤100,1≤d1,d2≤1001≤n≤100,1≤m≤100,1≤d_1,d_2≤100。 【样例说明】 最快的方案是第一个技术人员完成第二个软件的1818个模块,用时1818天,第三个技术人员完成第一个软件的1818个模块,用时1818天,其余的模块由第二个技术人员完成,用时1212天,做完所有的模块需要1818天。如果第一个技术人员完成第二个软件的1717个模块,第三个技术人员完成第一个软件的1717个模块,其余的模块由第二个技术人员完成,需要用时1818天,做完所有模块仍然需要1818天,所以少于1818天不可能做完所有模块。

评测数据说明

本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共10个测试点,非原站或官方原始数据。总分100分。

题目信息

#1683
100%

1 次通过 · 1 次提交

练习难度 提高
时间限制
1000ms
内存限制
128MiB
上传者