**
貪心演算法就是只要滿足我當前利益最大化即可,所以有時候得出的結果不是最優解。一般使用貪心演算法要滿足兩個條件:a.貪心選擇性質。b.最優子結構性質。
貪心選擇性質:這是貪心演算法與動態規劃的區別。也就是說,我通過區域性的最優來達到整體的最優。動態規劃一般是以「自底向上的方式解決問題(如數塔問題)」,而貪心是以「自上向下的方式解決問題(如hdu2037(活動安排)「。
最優子結構性質:這個性質是貪心和動規的共同點。也就是乙個問題的最優解要包含其子問題的最優解。
在用貪心演算法的時候關鍵在於:
1.如何證明每一步所做的貪心選擇,最終可以使最後結果最優。
2.如何制定可行的貪心策略。
hdu2037(活動安排)是乙個典型的貪心演算法。你只要每一步都選著占用時間最小的同時要使剩餘時間最大的,也就是說,每回你都要找乙個結束最早的。當你找到第乙個後,一定要使剩餘的時間最長,以後每選乙個都要考慮這個問題。這樣你每一步都最優的話,結果也是最優的,你可以用反證法證明。
#include #include int main()
}total=1;
for (i=1;i<=n;i++)
for (j=i+1;j<=n;j++)
if (a[i][2]<=a[j][1])
printf("%d\n", total);
}return 0;
}
HDU 2037 活動安排 貪心法
問題 簡單來說就是有個節目表有起始時間和結束時間.要你在一天內盡可能多的完整看節目.分析 典型貪心法解.這次貪得是結束時間.意思就是讓這一天中剩下的時間盡可能多.所以讓結束時間盡可能的早 剩下就是些判斷起始時間是否比看完上個節目晚就行了.用這道題練了練排序函式 結構體使用.寫的比較繁瑣.見諒。inc...
hdu 2037簡單貪心 活動安排問題
活動安排問題就是要在所給的活動集合中選出最大的相容活動子集合,是可以用貪心演算法有效求解的很好例子。該問題要求高效地安排一系列爭用某一公共資源的活動。貪心演算法提供了乙個簡單 漂亮的方法使得盡可能多的活動能相容地使用公共資源 設有n個活動的集合e 其中每個活動都要求使用同一資源,如演講會場等,而在同...
貪心 HDU 2037題解
貪心 1 確定候選集 將同一節目的開始時間與結束時間以結構體的方式儲存。2 貪心策略 對候選集進行預處理 對所有節目的結束時間由小到大進行排序處理。遍歷一遍排好序的陣列 首先將陣列第乙個位置的節目加入到解集中,且記錄此節目的結束時間,再依次向後找當滿足當前節目的開始時間比之前剛加入到解集中的節目的結...