题目描述:
给你S元猜足球胜平负,最坏情况下的收益。
大致思路:
枚举每一元钱,投在当前收益最低的一项,最后去收益的最小值,就是答案。
代码:
#include <iostream>
using namespace std;
const double eps =1e-5;
long long s,c[3],d[3],e[3];
int main() {
int n;
cin>>n;
while (n--) {
cin>>s;
for (int i = 0; i < 3; i++) {
double tmp;
cin>>tmp;
c[i] = (tmp + eps) * 100;
d[i] = e[i] = 0;
}
long long ans = 0;
for (int i = 1; i <= s; i++) {
int k = 0;
for (int j = 0; j < 3; j++) {
if (e[j] < e[k]) k = j;
}
d[k]++;
e[k] = d[k] * c[k] / 100;
k = 0;
for (int j = 0; j < 3; j++) {
if (e[j] < e[k]) k = j;
}
ans = max(ans,e[k] - i);
}
cout<<s+ans<<endl;
}
}