码迷,mamicode.com
首页 > 其他好文 > 详细

usaco Job Processing

时间:2015-10-01 13:59:55      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

A型机器从输入库接受工件,对其施加操作A,得到的中间产品存放在缓冲库。B型机器从缓冲库接受中间产品,对其施加操作B,得到的最终产品存放在输出库。所有的机器平行并且独立地工作,每个库的容量没有限制。每台机器的工作效率可能不同,一台机器完成一次操作需要一定的时间。

给出每台机器完成一次操作的时间,计算完成A操作的时间总和的最小值,和完成B操作的时间总和的最小值。

/*
ID: modengd1
PROG: job
LANG: C++
*/
#include <iostream>
#include <stdio.h>
#include <memory.h>
using namespace std;
int N,M[2],t[2][30];
int cost[2][1000],delay[30],ans;
int main()
{
    freopen("job.in","r",stdin);
    freopen("job.out","w",stdout);
    scanf("%d%d%d",&N,&M[0],&M[1]);
    for(int i=0;i<M[0];i++)
        scanf("%d",&t[0][i]);
    for(int i=0;i<M[1];i++)
        scanf("%d",&t[1][i]);
    for(int k=0;k<2;k++)
    {
        memset(delay,0,sizeof(delay));
        for(int i=0;i<N;i++)
        {
            int T=0x7fffffff,tag;
            for(int j=0;j<M[k];j++)
            {
                if(delay[j]+t[k][j]<T)
                {
                    T=delay[j]+t[k][j];
                    tag=j;
                }
            }
            cost[k][i]=T;
            delay[tag]+=t[k][tag];
        }
    }
    ans=0;
    for(int i=0;i<N;i++)
    {
        ans=max(cost[0][i]+cost[1][N-1-i],ans);
    }
    cout<<cost[0][N-1]<<‘ ‘<<ans<<endl;
    return 0;
}

  

usaco Job Processing

标签:

原文地址:http://www.cnblogs.com/modengdubai/p/4850946.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!