APCS202301第4題機器出租
zerojudge網址:https://zerojudge.tw/ShowProblem?problemid=j608
解題策略:排序+multiset+二分搜尋(lower_bound)
活動依照結束時間由小到大排序,若結束時間相同,可以不用依照開始時間排序。機器結束時間依序加入multiset會形成平衡的binary search tree,使用二分搜尋lower_bound找出第一個iterator(it)大於等於新活動的開始時間,(--it)就會找到最後一個機器結束時間小於新活動開始時間的機器,該機器執行新活動,更新結束時間到multiset。
範例輸入 #1
5 1
0 2 1 3 4
2 3 5 4 6
範例輸出 #1
2
範例輸入 #3
2 1
1 2
2 3
範例輸出 #3
1
範例輸入 #2
8 2
3 1 4 3 7 2 2 5
5 3 7 4 8 7 4 6
範例輸出 #2
5
C++參考程式
Python程式碼(使用bisect取代multiset)