貪心
1、確定候選集:
將同一節目的開始時間與結束時間以結構體的方式儲存。
2、貪心策略:
對候選集進行預處理:對所有節目的結束時間由小到大進行排序處理。
遍歷一遍排好序的陣列:首先將陣列第乙個位置的節目加入到解集中,且記錄此節目的結束時間,再依次向後找當滿足當前節目的開始時間比之前剛加入到解集中的節目的結束時間大或者相等時,將當前節目加入解集中,並記錄當前節目的結束時間,否則跳過當前節目向後尋找,直到遍歷完陣列所有元素,解集中的節目數既是答案。
3、證明:當選擇的當前節目的結束時間越小時,剩餘時間越多,則越能安排更多的節目(更嚴謹的證明可以使用數學歸納法與反證法)。
#include
#include
#include
using
namespace
std;
struct activity;
int n;
int ans;
bool ifstart;
activity ac[105];
bool cmp(const activity left, const activity right)
int main()
sort(ac, ac + n, cmp);
int lastend;
for (int i = 0; i < n; ++i)
else }}
printf("%d\n", ans);
}return
0;}
HDU2037 活動安排 貪心
貪心演算法就是只要滿足我當前利益最大化即可,所以有時候得出的結果不是最優解。一般使用貪心演算法要滿足兩個條件 a.貪心選擇性質。b.最優子結構性質。貪心選擇性質 這是貪心演算法與動態規劃的區別。也就是說,我通過區域性的最優來達到整體的最優。動態規劃一般是以 自底向上的方式解決問題 如數塔問題 而貪心...
HDU2037貪心演算法
problem description 今年暑假不ac?是的。那你幹什麼呢?看世界盃呀,笨蛋!確實如此,世界盃來了,球迷的節日也來了,估計很多acmer也會拋開電腦,奔向電視了。作為球迷,一定想看盡量多的完整的比賽,當然,作為新時代的好青年,你一定還會看一些其它的節目,比如新聞聯播 永遠不要忘記關心...
hdu 2037 貪心演算法求解
貪心演算法就是只要滿足我當前利益最大化即可,所以有時候得出的結果不是最優解。一般使用貪心演算法要滿足兩個條件 a.貪心選擇性質。b.最優子結構性質。貪心選擇性質 這是貪心演算法與動態規劃的區別。也就是說,我通過區域性的最優來達到整體的最優。動態規劃一般是以 自底向上的方式解決問題 如數塔問題 而貪心...