zoukankan      html  css  js  c++  java
  • P1248 加工生产调度 贪心

      

    题目描述

    某工厂收到了n个产品的订单,这n个产品分别在A、B两个车间加工,并且必须先在A车间加工后才可以到B车间加工。

    某个产品i在A、B两车间加工的时间分别为Ai、Bi。怎样安排这n个产品的加工顺序,才能使总的加工时间最短。这里所说的加工时间是指:从开始加工第一个产品到最后所有的产品都已在A、B两车间加工完毕的时间。

    输入输出格式

    输入格式:

    第一行仅—个数据n(0<n<1000),表示产品的数量。

    接下来n个数据是表示这n个产品在A车间加工各自所要的时间(都是整数)。

    最后的n个数据是表示这n个产品在B车间加工各自所要的时间(都是整数)。

    输出格式:

    第一行一个数据,表示最少的加工时间;

    第二行是一种最小加工时间的加工顺序。

    输入输出样例

    输入样例#1: 复制
    5
    3 5 8 7 10
    6 2 1 4 9
    
    输出样例#1: 复制
    34
    1 5 4 2 3


    为双机流水作业模板题

    #include<bits/stdc++.h>
    using namespace std;
    //input by bxd
    #define rep(i,a,b) for(int i=(a);i<=(b);i++)
    #define repp(i,a,b) for(int i=(a);i>=(b);--i)
    #define RI(n) scanf("%d",&(n))
    #define RII(n,m) scanf("%d%d",&n,&m)
    #define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
    #define RS(s) scanf("%s",s);
    #define ll long long
    #define pb push_back
    #define inf 0x3f3f3f3f
    #define CLR(A,v)  memset(A,v,sizeof A)
    //////////////////////////////////
    const int N=10000;
    struct node
    {
        int a,b,d,id;
    }s[N];
    int n,fa,fb;
    bool cmp(node a,node b)
    {
        if(a.d==b.d)
        {
            if(a.d<=0)return a.a<b.a;
            else return a.b>b.b;
        }
        return a.d<b.d;
    }
    int main()
    {
        RI(n);
        rep(i,1,n)RI(s[i].a);
        rep(i,1,n)
        {
            RI(s[i].b);
            s[i].id=i;
            if(s[i].a==s[i].b)s[i].d=0;
            else if(s[i].a>s[i].b)s[i].d=1;
            else s[i].d=-1;
        }
        sort(s+1,s+1+n,cmp);
    
        fa=s[1].a;fb=s[1].a+s[1].b;
     
        rep(i,2,n)
        {
            fb=max(fa+s[i].a,fb)+s[i].b;
            fa+=s[i].a;
        }
        cout<<fb<<endl;
    
        rep(i,1,n)
        printf("%d ",s[i].id);
    
        return 0;
    }
    View Code





  • 相关阅读:
    .NET基础示例系列之十二:DLLImport
    .NET基础示例系列之二:Socket
    Qt之msvcversion.conf loaded but QMAKE_MSC_VER isn‘t set
    Ubuntu安装sshd
    Quick工程设置exe图标
    git修改文件之后上传
    VS里打开Qt的pro工程
    QtQWebEngineView显示百度网页
    在gitte建立新仓库并上传本地工程
    Qt的qDebug打印加颜色
  • 原文地址:https://www.cnblogs.com/bxd123/p/10984688.html
Copyright © 2011-2022 走看看