LOJ 10003 加工生產排程(貪心)

2021-08-28 05:09:45 字數 874 閱讀 4894

題解:貪心策略始終是乙個比較煩人的地方……容易出錯。

這道題因為必須先a再b,所以第乙個在a加工的產品的a值必須盡可能小,這樣能減少機器b的等待時間,最後乙個在b加工的零件的b值必須盡可能小,這樣減少機器a的等待時間。

按照每個產品a值和b值的最小值從小到大排序,如果最小值是a的話就把這個產品往前放,否則往後放。

這題有個比較容易錯的地方是最少加工時間= =應該考慮排好序後機器a的工作時間和機器b的工作時間,然後取最大值。

ac**:

#include #include using namespace std;

struct node

st[1005];

int n;

int ta, tb;

int ans[1005];

bool cmp(node a, node b)

for(int i=0; i>st[i].b;

st[i].w=min(st[i].a, st[i].b);

b+=st[i].b;

}sort(st, st+n, cmp);

int left, right;

left=0;

right=n-1;

for(int i=0; i

else

}cout<

for(int i=0; i

cout<

return 0;

}

加工生產排程

題目描述 某工廠收到了n個產品的訂單,這n個產品分別在a b兩個車間加工,並且必須先在a車間加工後才可以到b車間加工。某個產品i在a b兩車間加工的時間分別為ai bi。詢問怎樣安排這n個產品的加工順序,才能使總的加工時間最短。這裡所說的加工時間是指 從開始加工第乙個產品到最後所有的產品都已在a b...

加工生產排程

n個作業要在由兩台機器m1和m2組成的流水線上完成加工 每個作業i必須先在m1上然後在m2上加工,時間分別為ai和bi。確定這n個作業的加工順序,使得從第乙個任務開始在m1上加工到最後乙個任務在m2上加工完成的總時間盡量小。直觀上,最優排程一定讓m1沒有空閒,m2的空閒時間盡量少。演算法 使用陣列f...

加工生產排程

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