問題:
有 n 項工作,每項工作分別在 s[i] 時間開始, 在 t[i] 時間結束 。對於每項
工作,你都有可以選擇參與與否。如果選擇了參與, 那麼自始自終都必須全程參與。
此外,參與工作的時間段不能重疊(即使是開始的瞬間和結束的瞬間的重疊也
是不允許的)。
**:
#include #include #include using namespace std;
const int max_n = 100000;
int n, s[max_n], t[max_n];
pairitv[max_n];
int main()
for(int j = 0; j < n; j++)
for(int i = 0; i < n; i++){
itv[i]
區間排程問題 貪心演算法
一 題目 區間排程問題 有n項工作,每項工作分別在si時間開始,在ti時間結束。對於每項工作,你都可以選擇參與與否。如果選擇了參與,那麼自始至終都必須全程參與。此外,參與工作的時間段不能重複 即使是開始的瞬間和結束的瞬間的重疊也是不允許的 你的目標是參與盡可能多的工作,那麼最多能參與多少項工作呢?1...
區間排程 貪心演算法
一 找到數目盡可能多的相容任務 假設每個任務j從sj開始到fj結束。若要找到盡可能多的相容任務,只需要將所有任務按照結束時間排序,每次都選擇最早結束的那個任務。因為每次選最早結束的,則留給之後的時間就越多。在餘下的時間中與被選的那個任務衝突的任務最多也只能有乙個被選 代替現在被選的這個任務 但是留下...
貪心演算法 區間排程問題總結
問題定義 存在單一資源,有一組以時間區間形式表示的資源請求reqs 第i個請求希望占用資源一段時間來完成某些任務,這段時間開始於begin i 終止於end i 如果兩個請求req i和req j在時間區間上沒有重疊,則說這兩個請求是相容的,求出這組請求的最大相容子集 最優子集 舉個例子 有一間多 ...