應某人要求,複述題意而非直接copy:
n個作業,持續時間均爲1,每個作業截止時間爲di, 收益爲vi
求一個算法使之可行收益最大
下面算法均爲貪心,都需要先對收益排序。現在認爲已經完成。
- 來自百度文庫:先優先滿足收益大的作業,優先最先完成。之後加入下一個作業,根據截止時間,進行類似插入排序。之後驗證是否滿足。O(n^2)
- 自思:優先滿足收益最大作業,儘量最遲完成,然後加入下一個作業,類似哈希,不過是向前尋找。O(n^2)
- 課件:在2的基礎上加一個並查集,每一位的指針指向的父節點爲當前最晚的可用時間。O(n)? maybe
over~