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上加工完成所需的時間最少。求這個最少的時間...