试题描述 |
给定一个容积为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 |
C++程序:
#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; }
时间: 2024-11-13 09:09:07