1425 例題4 加工生產排程

2021-10-07 21:51:14 字數 1373 閱讀 3660

1425:【例題4】加工生產排程

時間限制: 1000 ms 記憶體限制: 65536 kb

提交數: 2196 通過數: 571

【題目描述】

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

某個產品 i 在 a,b 兩車間加工的時間分別為ai,bi。怎樣安排這 n 個產品的加工順序,才能使總的加工時間最短。

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

【輸入】

第一行僅—個資料 n ,表示產品的數量;

接下來 n 個資料是表示這 n 個產品在 a 車間加工各自所要的時間;

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

【輸出】

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

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

【輸入樣例】

53 5 8 7 10

6 2 1 4 9

【輸出樣例】

341 5 4 2 3

【提示】

對於100%的資料, 0 < n < 10000,所有數值皆為整數。

#include

#define ll long long

#define pii pair

using

namespace std;

const

int n=

1e4+5;

struct node

}c[n]

;int n,a[n]

,b[n]

,f[n]

;//f儲存下標順序

intmain()

for(

int i=

1;i)for

(int j=i+

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

(c[i]

.x>c[j]

.x)swap

(c[i]

,c[j]);

int l=

1,r=n;

for(

int i=

1;i<=n;i++

)int ta=

0,tb=0;

for(

int i=

1;i<=n;i++

) cout << tb << endl;

for(

int i=

1;i<=n;i++

)printf

("%d "

,f[i]);

printf

("\n");

return0;

}

1425 例題4 加工生產排程

題目如下圖 題解 總用時最短,即讓機器空閒時間最短。一旦a機器開始,其將進行作業直到最後。b機器則在加工過程中可能會在等待a機器,顯然a機器加工第乙個產品時,b機器必須等待,而最後乙個產品在b機器上加工時,a機器則一停止並等待b機器完工。使機器空間時間最短,把a機器上加工時間最短的產品最先加工,可使...

1441 例題2 生日蛋糕

題解 也就是說第m層蛋糕的半徑最小為m,高最小也是m 此時第一層蛋糕半徑和高都是1保證第m層最小 1.for int i m i i m n i i表示的是半徑的範圍 2.for int j m i i j n j j表示的是高的範圍 3.if i i 2 i j 這一步表示的是只有我們在列舉到這個...

算典04 例題 03

n n 20 個人站成一圈,逆時針編號為1 n。有兩個 a從1開始逆時針數,b從n開始順時針數。在每一輪中,a數k個就停下來,b數m個就停下來 注意有可能兩個 停在同乙個人上 接下來被 選中的人 1個或者2個 離開隊伍。輸入n,k,m輸出每輪裡被選中的人的編號 如果有兩個人,先輸出被a選中的 例如,...