日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[Jobdu] 题目1499:项目安排

發布時間:2023/12/9 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Jobdu] 题目1499:项目安排 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述:

小明每天都在開源社區上做項目,假設每天他都有很多項目可以選,其中每個項目都有一個開始時間和截止時間,假設做完每個項目后,拿到報酬都是不同的。由于小明馬上就要碩士畢業了,面臨著買房、買車、給女友買各種包包的鴨梨,但是他的錢包卻空空如也,他需要足夠的money來充實錢包。萬能的網友麻煩你來幫幫小明,如何在最短時間內安排自己手中的項目才能保證賺錢最多(注意:做項目的時候,項目不能并行,即兩個項目之間不能有時間重疊,但是一個項目剛結束,就可以立即做另一個項目,即項目起止時間點可以重疊)。

?

輸入:

輸入可能包含多個測試樣例。
對于每個測試案例,輸入的第一行是一個整數n(1<=n<=10000):代表小明手中的項目個數。
接下來共有n行,每行有3個整數st、ed、val,分別表示項目的開始、截至時間和項目的報酬,相鄰兩數之間用空格隔開。
st、ed、value取值均在32位有符號整數(int)的范圍內,輸入數據保證所有數據的value總和也在int范圍內。

?

輸出:

對應每個測試案例,輸出小明可以獲得的最大報酬。

?

樣例輸入:
3 1 3 6 4 8 9 2 5 16 4 1 14 10 5 20 15 15 20 8 18 22 12
樣例輸出:
16 22

網易有道2013年校園招聘面試二面試題

動態規劃,先按項目結束時間排序,用數組a[]來存儲如果安排第i個項目時所得的最大收益。

?

1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 #include <cstdio> 5 using namespace std; 6 7 struct proj { 8 int st; 9 int ed; 10 int val; 11 }; 12 13 bool cmp(const proj &p1, const proj &p2) { 14 return p1.ed < p2.ed; 15 } 16 17 int main() { 18 //freopen("input.txt", "r", stdin); 19 int n; 20 while (cin >> n) { 21 vector<proj> v; 22 proj p; 23 p.st = 0; 24 p.ed = 0; 25 p.val = 0; 26 v.push_back(p); 27 int *a = new int[n+1]; 28 int i, j; 29 for (i = 1; i <= n; ++i) { 30 cin >> p.st >> p.ed >> p.val; 31 v.push_back(p); 32 a[i] = 0; 33 } 34 sort(v.begin(), v.end(), cmp); 35 a[0] = 0; 36 a[1] = v[1].val; 37 for (i = 2; i <= n; ++i) { 38 for (j = i - 1; j > 0; --j) { 39 if (v[i].st >= v[j].ed) 40 break; 41 } 42 a[i] = a[j] + v[i].val; 43 a[i] = a[i] > a[i-1] ? a[i] : a[i-1]; 44 } 45 cout << a[n] << endl; 46 } 47 return 0; 48 }

?

總結

以上是生活随笔為你收集整理的[Jobdu] 题目1499:项目安排的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。