洛谷 P1987 搖錢樹 揹包dp 貪心

2021-09-25 10:40:03 字數 1035 閱讀 7609

cpg 正在遊覽乙個夢中之城,在這個城市中有n棵搖錢樹。。。這下,可讓cpg看傻了。。。可是cpg只能在這個城市中呆k天,但是現在搖錢樹已經成熟了,每天每棵都會掉下不同的金幣(不屬於cpg!)。cpg每天可以砍掉其中一顆,並獲得其樹上說有的金幣(怎麼會有這種好事。。。)。請你幫助cpg算出他在這k天中最多能獲得多少金幣。

輸入格式:

每個檔案中有不超過10組測試資料。

每組測試資料:

第一行兩個整數n,k (1<=k<=n<=1000)

第二行n個整數mi (mi <= 100000).表示cpg剛看到這n棵樹時每刻樹上的金幣數。

第三行n個整數 bi.(bi<=1000)表示每顆搖錢樹,每天將會掉落的金幣。

以n=k=0結束。

輸出格式:

對每組測試資料,輸出僅一行,cpg在k天中能獲得的最大金幣數。

輸入樣例#1

3 3

10 20 30

4 5 6

4 320 30 40 50

2 7 6 5

0 0

輸出樣例#1

47

104

#include #include #include #include using namespace std;

int n,k,s,dp[100001];

typedef struct

lxydl;

lxydl a[1001];

inline bool cmp(lxydl a,lxydl b)

signed main()

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

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

sort(a+1,a+n+1,cmp);

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

}for(i=1;i<=k;i++)

cout<} return 0;

}

洛谷 P1987 搖錢樹(貪心 dp)

原題鏈結 給定 n 棵搖錢樹,第 i 棵搖錢樹上的初始金幣為 a i 每天會掉下 b i 個金幣。在 k 天內,每天都可以砍一棵搖錢樹,第 i 天砍第 j 棵搖錢樹可以得到 a j i 1 b j 個金幣,求最終得到的金幣數量的最大值。首先可以將題目中的 k 天看成是乙個容量為 k 的揹包,第 j ...

洛谷 P1858 多人揹包 DP

目錄輸入輸出樣例 說明思路 ac 洛谷 p1858 多人揹包 求01揹包前k優解的價值和 第一行三個數 k,v,n 接下來每行兩個數,表示體積和價值 前 k 優解的價值和 2 10 5 3 12 7 20 2 45 6 1 157對於100 的資料,k leq 50,v leq 5000,n leq...

洛谷 P1417 烹調方案 揹包dp

由於你的幫助,火星只遭受了最小的損失。但gw懶得重建家園了,就造了一艘飛船飛向遙遠的earth星。不過飛船飛到一半,gw發現了乙個很嚴重的問題 肚子餓了 gw還是會做飯的,於是拿出了儲藏的食物準備填飽肚子。gw希望能在t時間內做出最美味的食物,但是這些食物美味程度的計算方式比較奇葩,於是絕望的gw只...