題目1499 專案安排

2022-09-08 06:12:08 字數 1468 閱讀 4717

題目描述:

小明每天都在開源社群上做專案,假設每天他都有很多專案可以選,其中每個專案都有乙個開始時間和截止時間,假設做完每個專案後,拿到報酬都是不同的。由於小明馬上就要碩士畢業了,面臨著買房、買車、給女友買各種包包的鴨梨,但是他的錢包卻空空如也,他需要足夠的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

41 14 10

5 20 15

15 20 8

18 22 12

樣例輸出:

16

22

1 #include //

1499

2 #include 3 #include

4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10

1112

13using

namespace

std;

1415

16class

p;22

2324 p p[10001

];25

int dp[10001

]; 26

27bool cmp(const p & p1, const p &p2)

2831

32int

main()

3346

47 sort(p+1, p+n+1

, cmp);

48 dp[0] = 0;49

50for(i = 1; i <= n; i++)

5157 dp[i] = dp[j] +p[i].value;

5859

if(dp[i] < dp[i-1

])60 dp[i] = dp[i-1

];61

}62 cout64return0;

65 }

九度 1499 專案安排 一維DP

題目描述 總結 1.和 leetcode palindrome cut 的設定方法類似 2.時間複雜度為 o n 2 n 為任務個數 3.為了優化空間複雜度 同時也優化時間複雜度 dp i 表示第 i 個任務的開始時間到 endtime 之間能夠獲得的最大收益 source.cpp created ...

九度OJ 1499 專案安排 動態規劃

題目描述 小明每天都在開源社群上做專案,假設每天他都有很多專案可以選,其中每個專案都有乙個開始時間和截止時間,假設做完每個專案後,拿到報酬都是不同的。由於小明馬上就要碩士畢業了,面臨著買房 買車 給女友買各種包包的鴨梨,但是他的錢包卻空空如也,他需要足夠的money來充實錢包。萬能的麻煩你來幫幫小明...

NYOJ 720 專案安排

題目資訊 時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 小明每天都在開源社群上做專案,假設每天他都有很多專案可以選,其中每個專案都有乙個開始時間和截止時間,假設做完每個專案後,拿到報酬都是不同的。由於小明馬上就要碩士畢業了,面臨著買房 買車 給女友買各種包包的鴨梨,但是他的...