程序设计:八戒在山洞里迷路了,他不小心走到了一个山洞里,结果发现,山洞里有许多珠宝和宝石,还有很多昂贵的首饰,八戒开心极了,他先把这些东西全部带回家,可是他的背包容量有限,只能装下m千克及以内的东西,现在要你帮助八戒判断怎样装才能带回在m千克以内,价值最高的一些物品
样例输入:
8 3
2 3
5 4
5 5
样例输出:
8
解析:
一、打框架
#include <bits/stdc++.h>
using namespace std;
int main() {
return 0;
}
二、定义w, c数组分别存储重量与价值f数组存储对应的总价值
int w[1001], c[1001], f[1001];
三、循环输入宝石重量与对应的价值
for(i = 1; i <= n; i++){
cin >> w[i] >> c[i];
}
四、循环判断如果背包的容量够的话,放这块宝物和不放这块宝物的价值那个更大
for(i = 1; i <= n; i++){
for(j = m; j >= 0; j--){
if(j >= w[i]){
f[j] = max(f[j], f[j - w[i]] + c[i]);
}
}
}
五、输出最终最优解
cout << f[m] <