SOFTWARE
来源:互联网 发布:mac 优酷升级后 播放 编辑:程序博客网 时间:2024/05/16 14:08
一个软件开发公司同时要开发两个软件,并且要同时交付给用户,现在公司为了尽快完成这一任务,将每个软件划分成m个模块,由公司里的技术人员分工完成,每个技术人员完成同一软件的不同模块的所用的天数是相同的,并且是已知的,但完成不同软件的一个模块的时间是不同的,每个技术人员在同一时刻只能做一个模块,一个模块只能由一个人独立完成而不能由多人协同完成。一个技术人员在整个开发期内完成一个模块以后可以接着做任一软件的任一模块。写一个程序,求出公司最早能在什么时候交付软件。
【输入】
输入文件第一行包含两个由空格隔开的整数n和m,其中1≤n≤100,1≤m≤100。接下来的n行每行包畲两个用空格隔开的整数d1和d2,d1表示该技术人员完成第一个软件中的一个模块所需的天数,d2表示该技术人员完成第二个软件中的一个模块所需的天数,其中
l≤d1,d2≤100。
【输出】
输出文件仅有一行包含一个整数d,表示公司最早能于d天后交付软件。
【样例】
SOFTWARE.IN
3 20
1 1
2 4
1 6
SOFTWARE.OUT
18
【样例】
最快的方案是第一个技术人员完成第二个软件的18个模块,用时18天,第三个技术人员完成第一个软件的18个模块,用时18天,其余的模块由第二个技术人员完成,用时12天,做完所有模块需要18天。如果第一个技术人员完成第二个软件的17个模块,第三个技术人员完成第一个软件的17个模块,其余的模块由第二个技术人员完成,需要用时18天,做完所有模块仍然需要18天,所以少于18天不可能做完所有模块。
=====================================
二分答案+DP验证
=======================
type re=record d1,d2:longint; end;var n,m:longint; peo:array[1..100]of re; f:array[0..100,0..100]of longint;procedure init;begin assign(input,'software.in'); assign(output,'software.out'); reset(input); rewrite(output);end;procedure terminate;begin close(input); close(output); halt;end;function pd(t:longint):boolean;var i,j,k:longint; now:longint;begin fillchar(f,sizeof(f),$ff); f[0,0]:=0; for i:=1 to n do for j:=0 to m do for k:=j downto 0 do if f[i-1,k]<>-1 then begin now:=t-(j-k)*peo[i].d1; //记录剩下的时间 if now<0 then break; if f[i,j]<f[i-1,k]+now div peo[i].d2 then f[i,j]:=f[i-1,k]+now div peo[i].d2; end; if f[n,m]>=m then exit(true); exit(false);end;procedure main;var i:longint; l,r,mid:longint; ans:longint;begin readln(n,m); for i:=1 to n do readln(peo[i].d1,peo[i].d2); l:=1; r:=m; ans:=0; while l<=r do //二分时间 begin mid:=(l+r) shr 1; if pd(mid) then begin ans:=mid; r:=mid-1; end else l:=mid+1; end; writeln(ans);end;begin init; main; terminate;end.
- software
- software
- software
- software
- SOFTWARE
- software
- SoftWare
- Software
- Software Wars!!
- Useful software
- Software Test
- Econometric software
- SOFTWARE DOWNLOAD
- volcano software
- SOFTWARE DOWNLOAD
- Software Architecture
- Download software
- CV Software
- Hibernate断网后不能解析cfg配置文件,连接失败的问题
- 头文件之惑 C++系列(2)(2006-11-21 10:16:17)
- 机器学习 搜索引擎 数据挖掘 好的网址
- 从小函数实现看应聘者的编程素质(atoi.strcmp...)
- C++开发工具 C++系列(1)(2006-11-20 09:50:25)
- SOFTWARE
- Sharing Files between RHEL 6 and Windows Systems with Samba
- shell 遍历目录下的文件
- 数据库优化设计方案
- 软件开发工具必会(2007-09-10 15:25:24)
- 深入学习string
- 判断给定的整数是否是一个2的幂
- 程序员必须知道的SQLSERVER数据库优化技巧
- string