1001 Discount (数学 / 优惠率) (2020年百度之星*程序设计大赛-初赛三)
程序员文章站
2022-07-03 18:15:13
...
思路:
- 其实这就是个分析题意的问题。关键在于:只有第一次打折,意味着我们只省了a * (1 - c[i])的钱,而本应付的钱就为 b[i] * a + a * (1 - c[i])。
- 因此第i种套餐的优惠比例就是 (1 - c[i]) / (b[i] + (1 - c[i])),然后取一个max即可。
代码实现:
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int t, n;
int main()
{
cin >> t;
while(t --){
cin >> n;
double ans = 0;
while(n --){
double b, c; cin >> b >> c;
ans = max(ans, (1-c) / (b + (1-c)));
}
printf("%.5f\n", ans);
}
return 0;
}
上一篇: 百度地图API生成厦门区级行政区划图
下一篇: MQTT学习从零开始