帶時限的作業排序問題 經典問題

2021-10-06 20:01:29 字數 942 閱讀 6266

【題目描述】

設有乙個單機系統、無其它資源限制且每個作業執行相等時間,不妨假定每個作業執行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個位置有人的話,報數。判斷報的數是...