#include
#include
struct node
;struct node a[20]
,b[20];
intmain()
for(i=
1;i<=n;i++
)//按照截止時間排序,截止時間相同則按照value排序
for(i=
1;i)for
(j=i+
1;j<=n;j++
)else
if(a[i]
.time==a[j]
.time)}}
//從左往右對a進行處理,將其填入對應的時間,如果該時間被佔,則看前面有沒有空的時間。有,填入
//如果沒有,比較它與b中價值最小的,它大則替換
for(i=
1;i<=n;i++
)else
if(a[i]
.value>min)}}
}}int sum=0;
for(i=
1;i<=n;i++
)printf
("\n");
printf
("%d"
,sum)
;return0;
}
貪心演算法之區間排程問題
分析 拿到這道題目,首先要看清楚最終的題目要求,它的要求是參與盡可能多的工作,並不是說工作總時間最長。對於這題我們其實可以使用貪心演算法,就是不斷選取當前最優策略 我們不斷選取工作,其實可以有以下幾種思路進行選取,並進行聚反例來排除這種思路 1.在可選的工作中,選取開始時間最早的.反例 這種情況下先...
貪心演算法之區間排程問題
452.用最少數量的箭引爆氣球 什麼是貪心演算法呢?貪心演算法可以認為是動態規劃演算法的乙個特例,相比動態規劃,使用貪心演算法需要滿足更多的條件 貪心選擇性質 但是效率比動態規劃要高。比如說乙個演算法問題使用暴力解法需要指數級時間,如果能使用動態規劃消除重疊子問題,就可以降到多項式級別的時間,如果滿...
區間排程問題 貪心演算法
問題 有 n 項工作,每項工作分別在 s i 時間開始,在 t i 時間結束 對於每項 工作,你都有可以選擇參與與否。如果選擇了參與,那麼自始自終都必須全程參與。此外,參與工作的時間段不能重疊 即使是開始的瞬間和結束的瞬間的重疊也 是不允許的 include include include usin...