【題目描述】
設有乙個單機系統、無其它資源限制且每個作業執行相等時間,不妨假定每個作業執行1個單位時間。現有n(00,di為整數。如果作業能夠在截止期限之內完成,可獲得pi>0的收益。問題要求得到一種作業排程方案,該方案給出作業的乙個子集和該作業子集的一種排列,使得若按照這種排列次序排程作業執行,該子集中的每個作業都能如期完成,並且能夠獲得最大收益。
【輸入】
第一行輸入n的值,以下n行輸入作業號i,收益pi,截止期限di。
【輸出】
n個作業的乙個最優子集。
【輸入樣例】
41 100 2
2 10 1
3 15 2
4 27 1
【輸出樣例】
1 4
#include
#include
#include
using
namespace std;
const
int n =20;
struct work
;bool
cmp(work x,work y)
intjs
(work *work,
int*x,
int n)
}return k;
}int
main()
sort
(work,work+n,cmp)
;int k =
js(work,x,n)
;int num[n]
;for
(int i =
0; i <= k ; i++
)sort
(num,num+k+1)
;for
(int i =
0; i <=k;i++
)cout<<<
' ';
return0;
}
實驗五 揹包問題和帶時限的作業排序
一 實驗名稱 揹包問題和帶時限的作業排序 二 實驗目的 掌握貪心演算法解決問題的思想和一般過程,學會使用貪心演算法解決實際問題。三 實驗內容 實驗問題和程式執行結果 第一部分 揹包問題 完善下列程式,並回答問題。1 include2 define ksize 30 34 template 5clas...
經典排序演算法的經典問題
問題描述 乙個陣列只含有三種元素 0,1,2,不使用計數排序,將0放在1的左邊,2放在1的右邊。分析 1.可借鑑快排中劃分的思想。將陣列分為,arr,2.遍歷arr,當發現0時,0區向右擴,發現2時,2區向左擴,3.當前元素進入2區時,結束。vector sortthreecolor vector ...
約瑟夫問題 經典演算法,氣泡排序
約瑟夫問題 n個人圍成一圈,從第乙個人開始報數,數到m的人出圈 再由下乙個人開始報數,數到m的人出圈.輸出一次出圈的人的編號。include using namespace std bool a 101 int main int n,m cin n m cout第t個位置有人的話,報數。判斷報的數是...