AcWing 3. 完全背包问题
原题链接
简单
作者:
Rol
,
2020-09-24 15:48:42
,
所有人可见
,
阅读 451
C++ 代码
//
// Created by mywin on 2020/9/24.
//
#include <iostream>
#include <cstring>
#define MAX_N 1007
using namespace std;
int N,V;
int v[MAX_N],w[MAX_N];
int dp[MAX_N];
void input(){
cin >> N >> V;
int idx = 0;
while(idx < N){
cin >> v[idx] >> w[idx];
idx++;
}
}
void solve(){
memset(dp, 0 ,sizeof(dp));
for(int i = 0; i < N; i++){
for(int j = v[i]; j <= V; j++){
dp[j] = max(dp[j], dp[j - v[i]]+w[i]);
}
}
printf("%d\n", dp[V]);
}
int main(){
input();
solve();
return 0;
}