赞
踩
题目:
n个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi。
流水作业调度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少。
代码:
- #include <bits/stdc++.h>
-
- using namespace std;
- const int MAXN=1010;
- struct node
- {
- int min_cost,index;
- bool flag;
- };
- node d[MAXN];
- bool cmp(node a,node b)
- {
- return a.min_cost<b.min_cost;
- }
- int main()
- {
- int n,a[MAXN],b[MAXN],bq[MAXN];
- cin>>n;
- for(int i=1;i<=n;i++)
- {
- cin>>a[i]>>b[i];
- d[i].min_cost=min(a[i],b[i]);
- d[i].index=i;
- d[i].flag=a[i]<b[i];
- }
- sort(d+1,d+1+n,cmp);
- int head=1,tail=n;
- for(int i=1;i<=n;i++)
- if(d[i].flag) bq[head++]=d[i].index;
- else bq[tail--]=d[
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。