HDU2037 事件排序問題

2022-07-30 04:45:22 字數 1036 閱讀 7766

題目要求:

problem description

「今年暑假不ac?」

「是的。」

「那你幹什麼呢?」

「看世界盃呀,笨蛋!」

「@#$%^&*%...」

確實如此,世界盃來了,球迷的節日也來了。預計非常多acmer也會拋開電腦。奔向電視了。

作為球迷,一定想看盡量多的完整的比賽,當然,作為新時代的好青年,你一定還會看一些其他的節目,比方新聞聯播(永遠不要忘記關心國家大事)、很6+7、超級女生,以及王小丫的《開心辭典》等等,如果你已經知道了全部你喜歡看的電視節目的轉播時間表。你會合理安排嗎?(目標是能看盡量多的完整節目)

input

輸入資料報括多個測試例項,每乙個測試例項的第一行僅僅有乙個整數n(n<=100),表示你喜歡看的節目的總數,然後是n行資料,每行包括兩個資料ti_s,ti_e (1<=i<=n),分別表示第i個節目的開始和結束時間,為了簡化問題,每乙個時間都用乙個正整數表示。n=0表示輸入結束,不做處理。

output

對於每乙個測試例項。輸出能完整看到的電視節目的個數。每乙個測試例項的輸出佔一行。

解題思路:

看到這道題目之後。非常easy知道這是乙個關於事件的排序問題。用start[i]和end[i來記錄每乙個事件i的開始和結束的時間。為了在之後對事件的結束時間的早晚進行排序。考慮用結構體來儲存事件的起止時間,然後按事件的結束的早晚進行排序。貪心演算法,讓選擇了乙個事件之後,剩餘的時間盡可能的大。因此優先選擇結束時間早的事件。在對事件的結束時間按從早到晚的順序拍好序後,就能夠依照從前到後的考慮,增加了乙個事件後。考慮下乙個時間的開始時間是否大於(包括等於)當前事件的結束時間,假設是則增加到序列。

實現的**:

# include # include using namespace std;

struct node

node[105];

int cmp(struct node a,struct node b)

} printf("%d\n",maxs);

} return 0;

}

貪心 HDU 2037題解

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

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

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

HDU2037 活動安排 貪心

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