演算法 test10 相容問題

2021-10-06 21:54:09 字數 454 閱讀 1868

相容問題,解析時給出其他幾種貪心策略(如按開始時間從小到大、每個活動時間的占用時間等),並給出這些貪心策略無法實現最優的反例。

把活動按照截止時間從小到大排序,使得f1≤f2≤…≤fn,然後從前向後挑選,只要與前面選的活動相容,就可以把項活動選入a。

k=4(1)選擇活動1,截止時間最早:活動2,3與活動1不相容,活動4與活動1相容;

(2)選擇活動4:活動5,6與活動4不相容,活動7與活動4相容;

(3)選擇活動7:活動8,9與活動7不相容,活動10與活動7相容;

(4)選擇活動10:活動11與活動10不相容。

//排序

a=j=

1for i=

2 to n do

if si≥fj

then j=i

return a

時間複雜度 o(nlogn+n)=o(nlogn)

Q10 相容問題

相容問題,解析時給出其他幾種貪心策略 如按開始時間從小到大 每個活動時間的占用時間等 並給出這些貪心策略無法實現最優的反例。問題建模設s 為活動的集合,si和fi分別為活動i的開始和截止時間,i 1,2,n 定義 活動i和j相容,即si fj或sj fi,i j 求s的最大的兩兩相容的子集a。由方法...

《演算法分析與設計》 作業10 相容問題

一 問題 問題描述 有n項活動申請使用同乙個地點,每項活動有乙個開始時間和乙個截止時間。如果任何兩項活動不能同時舉行,問如何選擇這些活動,從而使得被安排的活動數量達到最多。問題建模 設s為活動的集合,s和f分別為活動的開始和截止時間。定義 活動i和j相容。求s最大的兩兩相容的活動子集a。把活動按照截...

演算法分析與實踐 作業10 相容問題

相容問題,解析時給出其他幾種貪心策略 如按開始時間從小到大 每個活動時間的占用時間等 並給出這些貪心策略無法實現最優的反例。有n項活動申請使用同乙個禮堂,每項活動有乙個開始時間和乙個截止時間。如果任何兩個活動不能同時舉行,問如何選擇這些活動,從而使得被安排的活動數量達到最多。設s 為活動的集合,si...