C 一本通 1 1 例 4 加工生產排程

2021-10-23 04:43:17 字數 2651 閱讀 5462

一本通題庫-1425

libreoj-10003

vjudge

注意:libreoj和一本通題庫題意相同,但資料範圍不同。**以一本通題庫為準。

某工廠收到了 n

nn 個產品的訂單,這 n

nn 個產品分別在 a、b

a、ba、

b 兩個車間加工,並且必須先在 a

aa 車間加工後才可以到 b

bb 車間加工。

某個產品 i

ii 在 a,b

a,ba,

b 兩車間加工的時間分別為ai,

bi

a_i,b_i

ai​,bi

​。怎樣安排這 n

nn 個產品的加工順序,才能使總的加工時間最短。

這裡所說的加工時間是指:從開始加工第乙個產品到最後所有的產品都已在 a,b

a,ba,

b 兩車間加工完畢的時間。

第一行僅—個資料 n

nn ,表示產品的數量;

接下來 n

nn 個資料是表示這 n

nn 個產品在 a

aa 車間加工各自所要的時間;

最後的 n

nn 個資料是表示這 n

nn 個產品在 b

bb 車間加工各自所要的時間。

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

第二行是一種最小加工時間的加工順序。

5

3 5 8 7 10

6 2 1 4 9

34

1 5 4 2 3

對於100

10010

0%的資料, 0

<

n<

10000

0 < n < 10000

0<

n<10

000,所有數值皆為整數。

貪心。要使總加工時間最少就是讓車間的空閒時間最少,就要把在a車間加工所需時間最少的產品先加工,把在b車間加工所需時間最少的產品後加工。

設a

ia_i

ai​為第i

ii個產品在a

aa車間加工所需時間,b

ib_i

bi​為第i

ii個產品在b

bb車間加工所需時間。

貪心策略: 令mi.

nu

mm_i.num

mi​.nu

m=min(

ai,b

i)

min(a_i,b_i)

min(ai

​,bi

​),將m從小到大排序,從第乙個開始處理,如果mi=

ai

m_i=a_i

mi​=ai

​,將它排在從頭開始加工的產品後面,如果mi=

bi

m_i=b_i

mi​=bi

​,則將它排在從尾開始加工的產品前面。

#pragma gcc optimize(3,"ofast","inline")

#pragma g++ optimize(3,"ofast","inline")

#include

#include

#include

#include

#include

#define ri register int

#define re(i,a,b) for(ri i=a; i<=b; i++)

#define ms(i,a) memset(a,i,sizeof(a))

#define max(a,b) (((a)>(b)) ? (a):(b))

#define min(a,b) (((a)<(b)) ? (a):(b))

using

namespace std;

typedef

long

long ll;

intconst n=

1e4+5;

struct node m[n]

;int n;

int a[n]

,b[n]

,f[n]

;int

main()

for(

int i=

1; i<=n-

1; i++

)for

(int j=i+

1; j<=n; j++)if

(m[i]

.num>m[j]

.num)

int l=

0,r=n+1;

for(

int i=

1; i<=n; i++

)int ta=

0,tb=0;

for(

int i=

1; i<=n; i++

)printf

("%d\n"

,tb)

;for

(int i=

1; i<=n; i++

)printf

("%d "

,f[i]);

printf

("\n");

return0;

}

一本通 1 1 例 4 加工生產排程

題目傳送門 這道題是johnson雙流水線排程演算法的基礎題。本題是要求乙個加工順序使得總的加工時間最少,而要使加工時間最少,就是讓各車間的空閒時間最少。一旦a車間開始加工,便會不停地進行加工 我們不要去管車間是否能夠一直生產,因為他們有三班,可以24時間不停地運轉 關鍵是b車間在生產的過程中,有可...

一本通 1 1 例 1 活動安排

題目link 貪心即可,將活動按右端點排序,排序後能選則選。o n 證明 首先對於乙個前面都為最優序列的前提下,如果對於乙個活動 a 使它發生是一種最優序列,然後再對於另乙個活動 b 它的結束時間比 a 早,並且開始時間也滿足條件,那麼根據貪心就可以選它,因為它既合法又是一種最優序列。1 inclu...

1425 例題4 加工生產排程

1425 例題4 加工生產排程 時間限制 1000 ms 記憶體限制 65536 kb 提交數 2196 通過數 571 題目描述 某工廠收到了 n 個產品的訂單,這 n 個產品分別在 a b 兩個車間加工,並且必須先在 a 車間加工後才可以到 b 車間加工。某個產品 i 在 a,b 兩車間加工的時...