活動(dòng)/任務(wù)選擇問題

給定n個(gè)活動(dòng),已知它們的起止時(shí)間,如何選擇活動(dòng)能夠使得單個(gè)人能夠完成最多數(shù)量的活動(dòng),假設(shè)單個(gè)人同一個(gè)時(shí)間只能做單個(gè)活動(dòng)。
例1:考慮下面三個(gè)活動(dòng),

活動(dòng) 開始時(shí)間 結(jié)束時(shí)間
活動(dòng)1 10 20
活動(dòng)2 12 25
活動(dòng)3 20 30

則單人最多可以完成兩個(gè)活動(dòng):1和3
例2:考慮下面六個(gè)活動(dòng),

活動(dòng) 開始時(shí)間 結(jié)束時(shí)間
活動(dòng)1 1 2
活動(dòng)2 3 4
活動(dòng)3 0 6
活動(dòng)4 5 7
活動(dòng)5 8 9
活動(dòng)6 5 9

則最多可以完成四個(gè)活動(dòng):1,2,4,5


思路是使用貪心方法,首先將活動(dòng)按照結(jié)束時(shí)間進(jìn)行排序,每次都選擇結(jié)束時(shí)間最近的的活動(dòng),但要保證當(dāng)前選擇的活動(dòng)開始時(shí)間不早于前一活動(dòng)的結(jié)束時(shí)間。

證明:(反證法)
首先將活動(dòng)安裝結(jié)束時(shí)間排序,假設(shè)存在更多的新的活動(dòng)選擇。則某個(gè)時(shí)間點(diǎn)選擇的不是當(dāng)前可行的最近可以完成的活動(dòng),后面的所有可行活動(dòng)選擇都可能被選擇,所以新的選擇活動(dòng)總數(shù)量不會(huì)大于按照結(jié)束時(shí)間選擇的活動(dòng)總數(shù)量。矛盾。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容