P1048 採藥 DP 01揹包

2022-09-12 03:27:08 字數 915 閱讀 2500

辰辰是個天資聰穎的孩子,他的夢想是成為世界上最偉大的醫師。為此,他想拜附近最有威望的醫師為師。醫師為了判斷他的資質,給他出了乙個難題。醫師把他帶到乙個到處都是草藥的山洞裡對他說:「孩子,這個山洞裡有一些不同的草藥,採每一株都需要一些時間,每一株也有它自身的價值。我會給你一段時間,在這段時間裡,你可以採到一些草藥。如果你是乙個聰明的孩子,你應該可以讓採到的草藥的總價值最大。」

如果你是辰辰,你能完成這個任務嗎?

第一行有 22 個整數 tt(1 \le t \le 10001≤t≤1000)和 mm(1 \le m \le 1001≤m≤100),用乙個空格隔開,tt 代表總共能夠用來採藥的時間,mm 代表山洞裡的草藥的數目。

接下來的 mm 行每行包括兩個在 11 到 100100 之間(包括 11 和 100100)的整數,分別表示採摘某株草藥的時間和這株草藥的價值。

輸出在規定的時間內可以採到的草藥的最大總價值。

輸入

70 3

71 100

69 1

1 2

輸出

3
這是一道01揹包問題的模板題,具體解析可看此文:動態規劃專題詳細總結(常見簡單型別)

#include#include#define max(a, b) (a)>(b)?a:b

int dp[1010] = ;

int t[110] , v[110];

int main()

for (int i = 1; i <= m; i++) }

int maxn = 0;

for (int i = 0; i <= t; i++)

printf("%d\n", maxn);

return 0;

}

P1048 採藥 01揹包模板)

題意 給我們乙個可以採藥的時間t,接下來用m 種藥,第i種藥採摘需要用w i 的時間,有v i 的價值。我們需要在時間t內採摘到最大的價值。我通過這題學習了01揹包。無優化 pragma gcc optimize 3,ofast inline include include include incl...

洛谷 P1048 採藥 01揹包

辰辰是個天資聰穎的孩子,他的夢想是成為世界上最偉大的醫師。為此,他想拜附近最有威望的醫師為師。醫師為了判斷他的資質,給他出了乙個難題。醫師把他帶到乙個到處都是草藥的山洞裡對他說 孩子,這個山洞裡有一些不同的草藥,採每一株都需要一些時間,每一株也有它自身的價值。我會給你一段時間,在這段時間裡,你可以採...

洛谷P1048 採藥 01揹包

辰辰是個天資聰穎的孩子,他的夢想是成為世界上最偉大的醫師。為此,他想拜附近最有威望的醫師為師。醫師為了判斷他的資質,給他出了乙個難題。醫師把他帶到乙個到處都是草藥的山洞裡對他說 孩子,這個山洞裡有一些不同的草藥,採每一株都需要一些時間,每一株也有它自身的價值。我會給你一段時間,在這段時間裡,你可以採...