Job Processing_usaco4.2_贪心
2016-11-24 21:20
330 查看
Description
一家工厂的流水线正在生产一种产品,这需要两种操作:操作A和操作B。每个操作只有一些机器能够完成。上图显示了按照下述方式工作的流水线的组织形式。A型机器从输入库接受工件,对其施加操作A,得到的中间产品存放在缓冲库。B型机器从缓冲库接受中间产品,对其施加操作B,得到的最终产品存放在输出库。所有的机器平行并且独立地工作,每个库的容量没有限制。每台机器的工作效率可能不同,一台机器完成一次操作需要一定的时间。
给出每台机器完成一次操作的时间,计算完成A操作的时间总和的最小值,和完成B操作的时间总和的最小值。
Input
第一行 三个用空格分开的整数:N,工件数量 (1<=N<=1000);M1,A型机器的数量 (1<=M1<=30);M2,B型机器的数量 (1<=M2<=30)。第二行…等 M1个整数(表示A型机器完成一次操作的时间,1..20),接着是M2个整数(B型机器完成一次操作的时间,1..20)
Output
只有一行。输出两个整数:完成所有A操作的时间总和的最小值,和完成所有B操作的时间总和的最小值(A操作必须在B操作之前完成)Analysis
贪心。对于第一问,我们每次寻找做完当前任务的最快且最早做完的机器,最后找的最大值就是答案
第二问可以看成是与第一问相同的子任务。为了达到最大值最小,我们要尽可能平均所有的总时间(Ai+Bi 尽可能小),那么当A完成的时间和B完成的时间有序时,任务i的最优解就是Ai+Bn−i+1
也就是最久的搭配最快的
数据不大可以枚举找最小值,也可以用堆
Code
/* ID:wjp13241 PROG:job LANG:C++ */ #include <stdio.h> #include <string.h> #include <queue> #define INF 0x7f7f7f7f #define N 1001 using namespace std; struct job{ int l,t; bool operator <(const job &x)const{return l+t>x.l+x.t;} }; int a ,b ,f ,t1 ,t2 ; int max(int x,int y){return x>y?x:y;} int main() { freopen("job.in","r",stdin); freopen("job.out","w",stdout); int n,na,nb; scanf("%d%d%d",&n,&na,&nb); priority_queue<job>q; for (int i=1;i<=na;i++) { scanf("%d",&a[i]); q.push((job){0,a[i]}); } int ans=0; for (int i=1;i<=n;i++) { job now=q.top();q.pop(); ans=max(ans,now.l+now.t); now.l+=now.t; q.push(now); t1[i]=now.l; } while (q.size()) q.pop(); printf("%d ",ans); for (int i=1;i<=nb;i++) { scanf("%d",&b[i]); q.push((job){0,b[i]}); } for (int i=1;i<=n;i++) { job now=q.top();q.pop(); now.l+=now.t; q.push(now); t2[i]=now.l; } ans=0; for (int i=1;i<=n;i++) ans=max(ans,t1[i]+t2[n-i+1]); printf("%d\n",ans); return 0; }
相关文章推荐
- USACO 4.2 Job Processing(贪心)
- usaco 4.2 Job Processing 贪心
- usaco 4.2 Job Processing(贪心)
- USACO-Section 4.2 Job Processing (贪心)
- USACO Section 4.2 Job Processing - 贪心
- USACO 4.2 job processing
- 【BZOJ 1724】[Usaco2006 Nov]Fence Repair 切割木板 堆+贪心
- usaco 4.2 The Perfect Stall 二分图最大匹配
- 1724: [Usaco2006 Nov]Fence Repair 切割木板( 贪心 )
- [USACO 2012 Feb Gold] Cow Coupons【贪心 堆】
- bzoj 1747: [Usaco2005 open]Expedition 探险 贪心
- USACO-Section 1.5 Number Triangles[贪心]
- BZOJ 1704: [Usaco2007 Mar]Face The Right Way 自动转身机( 贪心 )
- 洛谷P3093 [USACO13DEC]牛奶调度Milk Scheduling(贪心)
- 贪心(栈维护,好题)——[Usaco2006 Mar]Mooo
- 贪心+STL—— [Usaco2007 Dec]挑剔的美食家
- 【BZOJ1664】[Usaco2006 Open]County Fair Events 参加节日庆祝【线段覆盖】【贪心】
- USACO 1.3 - Barn Repair(贪心)
- [BZOJ1828][Usaco2010 Mar]balloc 农场分配(贪心+线段树)
- [Usaco2011][bzoj2442][洛谷2527]修剪草坪解题报告(dp,贪心,单调队列)