题目描述
这一天蓝桥杯建个机房,以后国赛用,因为蓝桥杯很有钱。
给了无限预算。但是由于运力有限,所以买的电脑总体积要小于等于V。
因为合作的运输公司NB,所以只需要考虑体积而不用考虑形状。
市面上有n种电脑,每种电脑,一台的体积为t,价钱为w。
因为蓝桥杯又抠门题又坑,你决定算出最多能花掉多少钱,不买最好只买最贵。
输入描述:
第一行两个整数1<=n<=1000,1<=v<=1000 第二至n+2行有两个整数1<=t<=1000,1<=w<=1000
输出描述:
输出一个数字代表花掉的钱
示例1
输入
复制5 6 1 2 2 4 3 4 4 5 5 6
5 6 1 2 2 4 3 4 4 5 5 6
输出
复制12
12
代码
#include <iostream>
#include <algorithm>
using namespace std;
int t[1001];
int w[1001];
int solve[1000001];
int main(void)
{
int n, v;
cin >> n >> v;
for(int i = 1; i <= n; i++)
{
cin >> t[i] >> w[i];
}
for(int i = 1; i <= n; i++)
{
for(int j = t[i]; j <= v; j++)
{
solve[j] = max(solve[j], solve[j - t[i]] + w[i]);
}
}
cout << solve[v];
return 0;
}