洛谷 P1858 多人揹包 解題報告

2022-04-30 05:09:08 字數 728 閱讀 4863

求01揹包前k優解的價值和

第一行三個數\(k\)、\(v\)、\(n\)

接下來每行兩個數,表示體積和價值

前k優解的價值和

對於100%的資料,$ k\le 50,v\le 5000,n\le 200$

算是積累見識吧,有些型別的題不見過一面估計比較難想

方程為\(dp[i][j][k]\)代表前\(i\)中在裝了\(j\)時第\(k\)優值

如何轉移呢

對\(dp[i][j]\)來說,由\(dp[i-1][j]\)和\(dp[i-1][j-w]+c\)轉移

即我們從\(dp[i-1][j][1...k]\)和\(dp[i-1][j-w][1...k]+c\)中選出前\(k\)大的給\(dp[i][j][1...k]\)

用到了歸併排序的思想

code:

#include #include int max(int x,int y)

int min(int x,int y)

for(int l=1;l<=k;l++) dp[l][j]=tmp[l];}}

int ans=0;

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

ans+=dp[i][v];

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

return 0;

}

2018.7.13

洛谷P1858 多人揹包

題目鏈結 dd 和好朋友們要去爬山啦!他們一共有 k 個人,每個人都會背乙個包。這些包的容量是相同的,都是 v 可以裝進揹包裡的一共有 n 種物品,每種物品都有給定的體積和價值。在 dd 看來,合理的揹包安排方案是這樣的 每個人揹包裡裝的物品的總體積恰等於包的容量。每個包裡的每種物品最多只有一件,但...

洛谷 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...

P1858 多人揹包

求01揹包前k優解的價值和 輸入格式 第一行三個數k v n 接下來每行兩個數,表示體積和價值 輸出格式 前k優解的價值和 輸入樣例 1 2 10 5 3 12 7 20 2 45 6 1 1 輸出樣例 1 57 對於100 的資料,k 50,v 5000,n 200 solution 本題由於需要...