2018 UESTC Training for Dynamic Programming
阿新 • • 發佈:2019-01-07
Content
進入命運石之門的輝子,看到的是數量巨大的記憶碎片,深知很難把這些美好記憶都帶回去給 Sakura 的輝子感到深深的無力。
一共有n塊記憶碎片,每塊記憶碎片的體積為 V_iV
i
, 每塊的美好值為 W_iW
i
,輝子現在有一個可以裝最大體積為m的魔法包,輝子想知道自己最多可以帶多大的美好值的記憶碎片回去給 Sakura。
Standard Input
第一行包含兩個整數 nn 和 mm。
第二行到第 n+1n+1 行每行兩個整數,分別表示1-n塊記憶碎片的體積 V_iV
i
和 W_iW
i
美好值。
Standard Output
輸出包含一個整數,表示最多可以帶回去多大的美好值的記憶碎片。
OJ有毒,同樣的程式碼一會CE一會RE一會TLE一會AC。
mmp多提交幾次
#include<bits/stdc++.h>
using namespace std;
#define maxn 110
int n,m,v[110],w[110],dp[1000010];
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)scanf("%d%d",&v[i],&w[i]);
for (int i=1;i<=n;i++){
for(int j=m;j>=v[i];j--){
if(dp[j]<dp[j-v[i]]+w[i])
dp[j] = dp[j-v[i]]+w[i];
}
}
int ans = 0;for(int i=0;i<=m;i++)ans = max(ans,dp[i]);
printf("%d",ans);
return 0;
}