演算法之貪心演算法解決電視節目問題

2021-10-04 19:32:53 字數 703 閱讀 9653

問題重述:

已知想看的節目個數及其開始和結束時間,求能完整看完最多的節目數。

分析:使用貪心演算法求區域性最優解問題。

自頂向下,以迭代的方法做出相繼的貪心選擇,每做一次貪心選擇就將所求問題簡化為乙個規模更小的子問題,通過每一步貪心選擇,可得到問題的乙個最優解,雖然每一步上都要保證能獲得區域性最優解,但由此產生的全域性解有時不一定是最優的。

思路:以結束時間從小到大排序,使其節目時間段不相交,即當前節目結束時間早於下乙個節目開始時間。此時該節目則為選入節目。

#include#include using namespace std;

struct program pro[1005]; //記錄節目的開始和結束時間

bool compare(program a,program b)

sort(pro,pro+n,compare); //把節目按結束時間由小到大排序

int endtime=pro[0].end; //記錄看完所選節目單內節目的時間

int num=1; //記錄選擇的節目個數

for(int i=1;i=endtime)

} //當所有節目皆已完成比較後,即可輸出所選節目單中的節目數

問題 B 貪心 電視節目安排

題目描述 李旭琳發現小墨老師在班上是最頑劣的學生 沒有之一 但他也有安靜的時候,例如在看電視的時候。像什麼 諜戰劇 啊,翻拍劇 啊,婆媳戲 啊,後宮劇 啊都是他的最愛。他甚至會事先查詢所有喜歡看的電視節目的轉播時間表並煞有介事的用紅藍鉛筆列出計畫,然後合理安排,以看到盡量多的完整節目。輸入輸入資料報...

問題 A 看電視 區間貪心演算法

題目描述 暑假到了,小明終於可以開心的看電視了。但是小明喜歡的節目太多了,他希望盡量多的看到完整的節目。現在他把他喜歡的電視節目的轉播時間表給你,你能幫他合理安排嗎?輸入輸入包含多組測試資料。每組輸入的第一行是乙個整數n n 100 表示小明喜歡的節目的總數。接下來n行,每行輸入兩個整數si和ei ...

貪心演算法解決跳馬問題 貪心演算法及解決的問題 10

貪心演算法是一種在每一步選擇中都採取在當前狀態下最好或最優 即最有利 的選擇,從而希望導致結果是全域性最好或最優的演算法。貪心演算法與動態規劃的不同在於它對每個子問題的解決方案都做出選擇,不能回退。動態規劃會儲存以前的運算結果,並根據以前的結果對當前進行選擇,有回退功能。貪心法可以解決一些最優化問題...