51nod 1205 流水線排程

2021-08-03 04:09:49 字數 1186 閱讀 6390

1205 流水線排程

基準時間限制:1 秒 空間限制:131072 kb 分值: 40 難度:4級演算法題 收藏 關注

n個作業要在由2臺機器m1和m2組成的流水線上完成加工。每個作業加工的順序都是先在m1上加工,然後在m2上加工。m1和m2加工作業i所需的時間分別為a[i]和b[i]。你可以安排每個作業的執行順序,使得從第乙個作業在機器m1上開始加工,到最後乙個作業在機器m2上加工完成所需的時間最少。求這個最少的時間。

input

第1行:1個數n,表示作業的數量。(2 <= n <= 50000)

第2 - n + 1行:每行兩個數,中間用空格分隔,表示在m1和m2上加工所需的時間a[i], b[i]。(1 <= a[i], b[i] <= 10000)。

output

輸出完成所有作業所需的最少時間。

input示例

4 3 7

2 1

1 1

4 2

output示例

14johnson演算法

暑假再補充

#include 

using

namespace

std;

long

long tag[500005];

long

long de[500005];

struct node

a[500005],b[500005],d[500005],c[1000005];

bool cmp(node l,node r)

sort(a,a+n,cmp);

sort(b,b+n,cmp);

long

long l=0,r=0,s=0;

while(lif(l1;

c[s++].x=a[l].x;

l++;

}else

//cout<}

long

long x=0,y=0;

l=1;r=n;

for(long

long i=0;iif(c[i].z==1&&tag[c[i].y]==0)

else

if(tag[c[i].y]==0)

}for(long

long i=1;i<=n;i++)

cout

<}

}

51Nod 1205 流水線排程

n個作業要在由2臺機器m1和m2組成的流水線上完成加工。每個作業加工的順序都是先在m1上加工,然後在m2上加工。m1和m2加工作業i所需的時間分別為aii和bii。你可以安排每個作業的執行順序,使得從第乙個作業在機器m1上開始加工,到最後乙個作業在機器m2上加工完成所需的時間最少。求這個最少的時間。...

貪心(流水線排程問題) 51nod 1205

關於流水下排程之前上課,高老師講了 一台和兩台機器的排程問題,不過都是一次加工完成的,如果是這種情況就只需要每次挑加工時間最短的就可以了 但是這題較之要難一點 一件物品加工兩次 一件物品粗加工後,才能到第二個機器進行深加工。因此計算時間的時候借助畫線段來分析思路比較清晰。思路 先把所有物品分為兩類,...

流水線排程

n個作業要在由2臺機器m1和m2組成的流水線上完成加工。每個作業加工的順序都是先在m1上加工,然後在m2上加工。m1和m2加工作業i所需的時間分別為a i 和b i 你可以安排每個作業的執行順序,使得從第乙個作業在機器m1上開始加工,到最後乙個作業在機器m2上加工完成所需的時間最少。求這個最少的時間...