题目描述
有n种物品,每种物品只有一个。第i种物品的体积为vi,价值为wi。选一些物品装到容量为C的背包中,问最大的价值是多少?
输入格式
第一行,输入n,c
第2至n+1行,输入这n个物品的体积v和价值w
输出格式
一个整数,表示最大价值
数据规模与约定
对于100的数据,0<n<200,0<vi<10000,0<C<10000,0<W<10000
Code:
#include<bits/stdc++.h>
using namespace std;
int v[101],w[101],dp[10001];
int main()
{
int n,c;
cin>>n>>c;
for(int i=0;i<n;i++)cin>>v[i]>>w[i];
for(int i=0;i<n;i++)
for(int j=c-1;j>=v[i]-1;j--)dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
cout<<dp[c-1];
return 0;
}
Hack:
2 0
-1000 -10000
500 20000
正确答案:10000
我的结果:RE