题目描述
有一辆最大载重为15吨的货车。现一共有五件货品,重量分别是W1,W2,W3,W4,W5,价值分别是V1,V2,V3,V4,V5。现希望货车中装入的货物总价值越大越好。请你编写程序,帮助计算,在不超载的情况下,货车能够运输的货品最大总价值是多少?
例如,5件货品的重量和价值如下表所示∶
输入格式
第一行输入5个正整数,数字之间以一个空格分隔,表示货品的重量。
第二行输入5个正整数,数字之间以一个空格分隔,表示货品的价值。
输出格式
计算能够运输的货品最大总价值,并输出
样例输入
3 4 6 6 5
1000 500 400 1200 300
样例输出
2700
AC代码
#include<bits/stdc++.h>
using namespace std;
int w[105],v[105];
int dp[105][20002];
int main(){
for(int i=1;i<=5;i++){
cin>>w[i];
}
for(int i=1;i<=5;i++){
cin>>v[i];
}
for(int i=1;i<=5;i++){
for(int j=1;j<=15;j++){
if(w[i]>j){
dp[i][j]=dp[i-1][j];
}else if(w[i]<=j){
dp[i][j]=max(v[i]+dp[i-1][j-w[i]],dp[i-1][j]);
}
}
}
cout<<dp[5][15];
return 0;
}