利用贪心算法写出最优装载的代码
时间: 2023-11-26 14:57:26 浏览: 33
好的,以下是利用贪心算法写出最优装载的示例代码:
```
#include <iostream>
#include <algorithm>
using namespace std;
struct Goods {
int weight; // 货物重量
int price; // 货物价格
};
bool cmp(Goods a, Goods b) {
return a.price > b.price; // 价格从高到低排序
}
double knapsack(Goods* goods, int n, int c) {
double res = 0.0;
sort(goods, goods + n, cmp); // 按照单位价值从高到低排序
for (int i = 0; i < n && c > 0; ++i) {
int a = min(c, goods[i].weight); // 选择可以装载的最大数量
res += a * (double)goods[i].price / goods[i].weight; // 计算当前装载的最优价值
c -= a; // 减去已经装载的重量
}
return res;
}
int main() {
int n, c;
cin >> n >> c;
Goods* goods = new Goods[n];
for (int i = 0; i < n; ++i) {
cin >> goods[i].weight >> goods[i].price;
}
cout << knapsack(goods, n, c) << endl;
delete[] goods;
return 0;
}
```
请问您还有其它问题需要回答吗?如果没有,可以向我说"结束"。