1425 例題4 加工生產排程

2021-10-21 08:34:02 字數 1019 閱讀 5644

題目如下圖:

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

使機器空間時間最短,把a機器上加工時間最短的產品最先加工,可使得b機器在最短的等待時間後開始加工;把b機器加工時間最短的產品放在最後,使得a機器用最短的時間等待b機器完工。

嘗試用貪心策略:

1、比較對應第i個產品的a機器加工時間ai,b機器加工時間bi,儲存對應第i個產品的最小加工時間為mi。

2、將最少加工時間按照從小到大進行排序,然後從第1個開始處理,若mi=ai,則將第i個產品從頭開始排序的任務後面,否則,將它排在從尾開始排序的任務前面。

ps:這邊一本通不能用sort直接對結構體進行快速排序(why?),所以用了選擇結構來排序

一本通**:

#includeusing namespace std;

struct stus[10001];

int res[10001];

//一本通不能用這個排序方式???

bool cmp(stu x,stu y)

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

//sort(s+1,s+n+1,cmp);//一本通不能用這個排序方式

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

} }int front = 1;

int back = n;

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

} int t1=0,t2=0;

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

cout<

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

return 0;

}

1425 例題4 加工生產排程

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

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選中的 例如,...