活動安排問題

2022-08-22 14:18:12 字數 717 閱讀 3566

問題

設有n個活動的集合e=,其中每個活動都要求使用同一資源(如乙個階梯教室等),而在同一時間內只有乙個活動能使用這一資源。

每個活動i都有乙個要求使用該資源的起始時間si和乙個結束時間fi,且0<=si 【**

template

void greedyselector(int n,type s, type f, bool

a)    

else a[i]=false;}

}

演算法分析

貪心演算法greedyselector一開始選擇活動1,並將j初始化為1。然後檢查活動i是否與當前已選擇的所有活動相容。若相容則將活動i加入到已選擇活動的集合a中,否則不選擇活動i,而繼續檢查下一活動與集合a中活動的相容性。由於 fj 總是當前集合a中所有活動的最大結束時間,故活動i與當前集合a中相容的充分必要條件是其開始時間 si 不早於最近加入集合a中的活動j的結束時間 fj,即 si

≥fj 。若活動i與之相容,則i成為最近加入集合a中的活動,並取代活動 j 的位置。由於輸入的活動以完成時間的非減序排列,所以演算法greedyselector每次總是選擇具有最早完成時間的相容活動加入集合a中。直觀上,按這種方法選擇相容活動為未安排活動留下盡可能多的時間。也就是說,該演算法的貪心選擇的意義是使剩餘的可安排時間段極大化,以便安排盡可能多的相容活動。

活動安排問題

作為新一代的好青年肯定會喜歡許多的電視節目,比如說新聞聯播,焦點訪談,又如招聘類的節目有非你莫屬,職來職往,娛樂節目如快樂大本營。現在給你每個節目的開始時間和結束時間,要求你求出看盡可能多的完整節目。每個電視節目i都有乙個起始時間si和乙個結束時間fi,且si 對於活動安排問題可以用貪心演算法解決,...

活動安排問題

活動安排 描述 設有n個活動的集合e 其中每個活動都要求使用同一資源,如演講會場等,而在同一時間內只有乙個活動能使用這一資源。每個活動i都有乙個要求使用該資源的起始時間si和乙個結束時間fi,且si 輸入 輸入只有乙個用例,第一行為一正整數n,表示活動個數,接下來n行,每行兩個整數,分別表示第i號活...

活動安排問題

有若干個活動,第i個開始時間和結束時間是 si,fi 同乙個教室安排的活動之間不能交疊,求要安排所有活動,最少需要幾個教室?第一行乙個正整數n n 10000 代表活動的個數。第二行到第 n 1 行包含n個開始時間和結束時間。開始時間嚴格小於結束時間,並且時間都是非負整數,小於1000000000 ...