貪心 加工生產排程

2022-04-06 23:19:06 字數 2130 閱讀 7158

時間限制: 1 s

空間限制: 128000 kb

題目等級 : ** gold

某工廠收到了n個產品的訂單,這n個產品分別在a、b兩個車間加工,並且必須先在a車間加工後才可以到b車間加工。

某個產品i在a、b兩車間加工的時間分別為ai、bi。怎樣安排這n個產品的加工順序,才能使總的加工時間最短。這裡所說的加工時間是指:從開始加工第乙個產品到最後所有的產品都已在a、b兩車間加工完畢的時間。

輸入描述 input description

第一行僅—個資料n(0接下來n個資料是表示這n個產品在a車間加工各自所要的時間(都是整數)。

最後的n個資料是表示這n個產品在b車間加工各自所要的時間(都是整數)。

輸出描述 output description

第一行乙個資料,表示最少的加工時間;

樣例輸入 sample input

3 5 8 7 10

6 2 1 4 9

樣例輸出 sample output

資料範圍及提示 data size & hint

0貪心,需要用到johnson演算法,

不過在網上見大佬用了一種奇妙的思路,居然a了,不可思議

思路是:

先求出a廠的總時間suma,b廠的總時間sumb。

若suma>sumb,則總時間 ans=suma+minb(b廠時間的最小值)。

反之,總時間 ans=sumb+mina。

1 #include2 #include3

using

namespace

std;

4int n,m,ans,mina=99999999,minb=99999999

,suma,sumb;

5int

main()614

for(int i=1;i<=n;++i)

1520

if(suma>sumb) ans = suma +minb;

21else ans = sumb +mina;

22 printf("%d"

,ans);

23return0;

24 }

johnson做法是

1 #include2 #include3

4using

namespace

std;

5const

int n = 1010;6

struct

jobs[n];

9int

n,m,ans;

10int

a[n],b[n],c[n],t[n];

1112

bool

cmp(job a,job b)

1316

void

jonson()

1724 sort(s+1,s+n+1

,cmp);

25int l = 0;26

int r = n+1;27

for(int i=1;i<=n;++i)

2834}35

intmain()

36

johnson演算法中,c陣列表示的是加工順序

洛谷上也有一道題p1248

與codevs不同的是需要輸出加工順序,應該輸出c陣列就是了

結果只過了三個點qaq,求大佬解釋

1 #include2 #include3

4using

namespace

std;

5const

int n = 1010;6

struct

jobs[n];

9int

n,m,ans;

10int

a[n],b[n],c[n],t[n];

11bool

cmp(job a,job b)

1215

void

jonson()

1623 sort(s+1,s+n+1

,cmp);

24int l = 0;25

int r = n+1;26

for(int i=1;i<=n;++i)

2733}34

intmain()

35

貪心 加工生產排程

問題 d 貪心 加工生產排程 時間限制 1 sec 記憶體限制 64 mb 提交 狀態 題目描述 有n個部件需在a b機器上加工,每個工件都必須經過先a後b兩道工序。已知 部件i在a b機器上的加工時間分別為ai,bi。問 如何安排n個工件的加工順序,才能使得總加工時間最短?輸入第1行僅乙個整數n ...

貪心 加工生產排程 經典

貪心 加工生產排程 時間限制 1 sec 記憶體限制 64 mb 提交 61 解決 24 提交 狀態 討論版 命題人 外部匯入 題目描述 有n個部件需在a b機器上加工,每個工件都必須經過先a後b兩道工序。已知 部件i在a b機器上的加工時間分別為ai,bi。問 如何安排n個工件的加工順序,才能使得...

貪心 加工生產排程(雙機排程貪心問題)

時間限制 1 sec 記憶體限制 64 mb 提交 41 解決 21 提交 狀態 討論版 命題人 外部匯入 題目描述 有n個部件需在a b機器上加工,每個工件都必須經過先a後b兩道工序。已知 部件i在a b機器上的加工時間分別為ai,bi。問 如何安排n個工件的加工順序,才能使得總加工時間最短?輸入...