hdu 2037簡單貪心 活動安排問題

2022-03-17 16:02:49 字數 726 閱讀 9123

活動安排問題就是要在所給的活動集合中選出最大的相容活動子集合,是可以用貪心演算法有效求解的很好例子。該問題要求高效地安排一系列爭用某一公共資源的活動。貪心演算法提供了乙個簡單、漂亮的方法使得盡可能多的活動能相容地使用公共資源

設有n個活動的集合e=,其中每個活動都要求使用同一資源,如演講會場等,而在同一時間內只有乙個活動能使用這一資源。每個活動i都有 乙個要求使用該資源的起始時間si和乙個結束時間fi,且si 也就是說,當si≥fj或sj≥fi時,活動i與活動j相容。 

首先我們要做的就是,根據結束時間,對儲存開始時間和結束時間的兩個陣列進行公升序排序,然後每次貪心選擇最前面的當然要保證相容。

**:

1 #include2 #include3

using

namespace

std;45

struct

ss;9

10int

cmp(ss x,ss y)

13int

main()

22 sort(time,time+n,cmp);

23 a[0] = time[0

].end;

24int j = 0;25

for(int i = 1;i < n; i ++)30}

31 printf("

%d\n

",ans);32}

33return0;

34 }

view code

HDU2037 活動安排 貪心

貪心演算法就是只要滿足我當前利益最大化即可,所以有時候得出的結果不是最優解。一般使用貪心演算法要滿足兩個條件 a.貪心選擇性質。b.最優子結構性質。貪心選擇性質 這是貪心演算法與動態規劃的區別。也就是說,我通過區域性的最優來達到整體的最優。動態規劃一般是以 自底向上的方式解決問題 如數塔問題 而貪心...

HDU 2037 活動安排 貪心法

問題 簡單來說就是有個節目表有起始時間和結束時間.要你在一天內盡可能多的完整看節目.分析 典型貪心法解.這次貪得是結束時間.意思就是讓這一天中剩下的時間盡可能多.所以讓結束時間盡可能的早 剩下就是些判斷起始時間是否比看完上個節目晚就行了.用這道題練了練排序函式 結構體使用.寫的比較繁瑣.見諒。inc...

貪心 HDU 2037題解

貪心 1 確定候選集 將同一節目的開始時間與結束時間以結構體的方式儲存。2 貪心策略 對候選集進行預處理 對所有節目的結束時間由小到大進行排序處理。遍歷一遍排好序的陣列 首先將陣列第乙個位置的節目加入到解集中,且記錄此節目的結束時間,再依次向後找當滿足當前節目的開始時間比之前剛加入到解集中的節目的結...