#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
int t;
double n, m, p;
double qpow(double a, ll k)
{
double res = 1;
while(k)
{
if(k & 1) res *= a;
a *= a;
k >>= 1;
}
return res;
}
double calc(ll k)
{
return ((double)k * n + m) / (1 - qpow(1 - p, k));
}
int main()
{
cin >> t;
while(t --)
{
cin >> n >> m >> p;
p /= 10000;
ll l = 1, r = 1e9;
while(l < r)
{
ll mid1 = l + (r - l) / 3;
ll mid2 = r - (r - l) / 3;
if(calc(mid1) < calc(mid2)) r = mid2 - 1;
else l = mid1 + 1;
}
printf("%.10lf\n", calc(l));
}
return 0;
}
ICPC2021南京区域赛 F.Fireworks(三分、概率期望)
原文:https://www.cnblogs.com/K2MnO4/p/14826576.html