软件公司
来源:互联网 发布:英语看图识音软件 编辑:程序博客网 时间:2024/04/29 09:35
题意
给你两种不同的工作,而每一项工作有m份。一共有n个人工作,且每个人工作两种不同的工作时间为
数据范围
对于30%的数据,n<=30.
对于60%的数据,n<=60.
对于100%的数据, n,m<=100.
分析
首先这题我们可以列出最基本的
注意
要初始化,否则会出错!
总结
这题的思想归根结底还是二分,但是方程的优化是巧妙的,能又三维转成二维。
var n,m,l,r,ma,i,mid:longint;a:array[1..190,1..2] of longint;f:array[0..100,0..100] of longint;function max(l,r:longint):longint;begin if l<r then exit(r) else exit(l);end;function check(x:longint):boolean;var i,j,k:longint;begin for i:=0 to n do for j:=0 to m do f[i,j]:=-maxlongint; f[0,0]:=0; for i:=1 to n do for j:=0 to m do for k:=0 to j do begin if x-k*a[i,1]<0 then break; f[i,j]:=max(f[i,j],f[i-1,j-k]+(x-k*a[i,1]) div a[i,2]); x:=x; end; if f[n,m]>=m then exit(true);exit(false);end;beginassign(input,'company.in');reset(input);assign(output,'company.out');rewrite(output); readln(n,m); for i:=1 to n do begin read(a[i,1],a[i,2]);ma:=max(max(ma,a[i,2]),a[i,1]);end; l:=0;r:=ma*n; while l<r do begin mid:=(l+r)shr 1; if check(mid) then r:=mid else l:=mid+1; end; writeln(l);close(input);close(output);end.
0 0
- 软件公司
- 软件公司
- 软件公司
- 软件公司管理
- 经营软件公司
- 软件公司模式
- 软件公司的技术战略
- 程序员论,软件公司论
- 程序员论,软件公司论
- 程序员论,软件公司论
- 这就是软件公司吗?
- 软件公司管理规章
- 软件公司维修服务单
- 软件公司维护合约书
- 软件公司合伙契约(原作)
- 软件公司美工的地位!
- 小型软件公司的出路
- 关于艾森软件公司
- 测试天气查询API(JAVA版百度api、C#版APIX)未处理json
- Android WebView 支持H5 DOM Storage
- 电脑开启wifi热点
- Spark性能调优
- 证券基础--信息披露
- 软件公司
- HTTP协议详解----HTTP消息
- JVM中类加载的机制
- 【大话设计模式】全局把握篇
- hustoj的永久pending 与 永久Running & Judging解决
- [258]Add Digits
- 安装vmware-tools遇The path "" is not a valid path to the 3.8.13-44.1.1.el6uek.x86_64 kernel问题解决
- [精华] 前段时间arch/i386/kernel/head.S注解
- CF#323-DIV2-D. Once Again-暴力贪心LIS