普通背包问题
2015-08-10 12:01
351 查看
试题描述 |
给定一个容积为V的背包,有N件物品,其中第i件的体积为vi,价值为wi。现在要向背包中放置若干个物品,使得放入背包的物品的总价值最大。 |
输入 |
第一行,两个整数N、V。 接下来的N行,每行两个整数vi、wi。 |
输出 |
一行,一个整数,表示最大的总价值。 |
输入示例 |
4 5 3 4 1 1 2 3 2 2 |
输出示例 |
7 |
其他说明 |
N, V<=1000,vi, wi<=1000 |
#include <iostream>
#include <cstdio>
using namespace std;
int js[1000001];
int t;
int n, a, b;
int main(){
cin >> n >> t;
for(int i = 1; i <= n; ++i){
cin >> a >> b;
for(int j = t; j >= a; --j){
js[j] = max(js[j], js[j - a] + b);
}
}
cout << js[t] << endl;
return 0;
}