c++实现
时间: 2023-06-29 19:16:25 浏览: 35
以下是 C++ 实现代码:
```cpp
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <vector>
using namespace std;
struct Operation {
int type; // 操作类型,1 表示增加好评,2 表示删除差评
double delta; // 好评率增加量
int cost; // 操作花费
};
bool cmp(const Operation& a, const Operation& b) {
return a.delta > b.delta;
}
int main() {
int m, a, b;
cin >> m >> a >> b;
vector<Operation> ops;
ops.push_back({1, 1.0 / (a + 1), 1}); // 首先进行一次增加好评的操作
if (b > 0) {
double delta = (double)(a + 1) / (a + b + 1) - (double)a / (a + b);
ops.push_back({2, delta, m}); // 添加一次删除差评的操作
}
sort(ops.begin(), ops.end(), cmp); // 按边际效益排序
double rate = (double)a / (a + b); // 初始好评率
for (auto op : ops) {
if (op.cost <= m) {
rate += op.delta;
m -= op.cost;
} else {
rate += op.delta * ((double)m / op.cost);
m = 0;
}
if (m == 0) break; // 预算用完,退出循环
}
cout << fixed << setprecision(5) << rate << endl; // 输出最终好评率,保留 5 位小数
return 0;
}
```
输入格式为三个整数,分别表示预算 m,好评数量 a 和差评数量 b。输出格式为一个浮点数,表示最终的好评率,保留 5 位小数。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)