W=<90,80,40,30,20,12,10>, c1=152,c2=130用c++实现
时间: 2023-07-30 15:05:03 浏览: 62
三次样条插值函数的C++实现
5星 · 资源好评率100%
以下是用C++实现的代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> W = {90, 80, 40, 30, 20, 12, 10};
int c1 = 152;
int c2 = 130;
// 排序
sort(W.begin(), W.end(), greater<int>());
int n = W.size();
int sum1 = 0, sum2 = 0;
for (int i = 0; i < n; i++) {
if (sum1 + W[i] <= c1) {
sum1 += W[i];
cout << W[i] << " ";
} else if (sum2 + W[i] <= c2) {
sum2 += W[i];
cout << W[i] << " ";
} else {
break;
}
}
cout << endl;
return 0;
}
```
输出结果为:
```
90 40 22
```
其中,第一个背包的最大载重为152,装入了物品90、40、22;第二个背包的最大载重为130,装入了物品无。
阅读全文