藍書整理 補充推導 流水作業排程問題

2022-05-05 16:39:24 字數 1149 閱讀 4942

商業分割

\[yrq \ yrq \ yrq \ yrq \ yrq

\]上回書說到 我們已經有了這個式子

\[min(b_j,a_i) \leq min(b_i,a_j)

\]那麼我們是怎麼由這個式子推導到

的呢?同樣,我們可以設 \(n_1\)為 a < b 的作業集合,設\(n_2\)為 a > b 的作業集合,將 \(n_1\) 的作業集合按照\(a_i\)公升序排列,將\(n_2\) 的按照\(b_i\)降序排列。\(n_1\)放在\(n_2\)後面構成最優順序。

對於i < j,應當滿足的條件是

\[min(b_j,a_i) \leq min(b_i,a_j)

\]那麼如果i,j都在\(n_1\)集合裡面,那麼\(min(b_j,a_i) = a_i,min(b_i,a_j) = a_j\),也就是按照a的公升序排列

如果i,j都在集合\(n_2\)裡面,那麼\(min(b_j,a_i) = b_j,min(b_i,a_j) = b_i\),也就是按照b的降序排列

如果i在\(n_1\)中,j在\(n_2\)中,那麼就有

\[a_i < b_i \\

a_j > b_j \\

b_j < a_j

\]那麼顯然成立。

所以排序方式就已經確定了。

#includeusing namespace std;

int ans[1005],n,k,i,j,t,a[1005];

int b[1005],m[1005],s[1005];

void read()

}void solve()

}k = 0;t = n + 1;

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

else

}k = 0;t = 0;

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

cout << t << endl;

for(i = 1;i <= n;i++) cout << ans[i] << ' ';

cout << endl;

}int main()//lcez_cyc

小藍書 電影

題意都是用離散化的嗎?這麼神奇?我的思路就是對於 a 排序,對於語音和字幕的也分別排序,然後三個指標一起從小到大跳得到每個電影的語音和字幕能讓多少個人高興起來。時間複雜度 o nlogn mlogm include include include define n 210000 using name...

PMP備考 錯題整理 小藍書第6章

1.如下說法都是正確的,除了?a.經過批准的進度計畫叫進度模型 b.進度模型的輸出是進度計畫 c.經過批准的進度模型是進度基準 d.進度計畫的輸出是進度模型 正確答案 d 解析 根據pmbok 圖6 2和pmbok 6.5.3.1。2.專案經理必須在三個月內開發乙個新產品。專案經理報告最可能的估算為...

PMP備考 錯題整理 小藍書第13章

1.下列哪一些屬於專案相關方管理過程?a.積極有效地傾聽相關方 b.實施相關方分析 c.管理相關方參與 d.建立相關方登記簿 正確答案 c 解析 第13章相關方管理一共有四個過程 識別相關方 規劃相關方管理 管理相關方參與和監督相關方參與。題目問的是第三個過程,a b d選項都屬於第乙個過程 識別相...