0
点赞
收藏
分享

微信扫一扫

ICPC 区域赛 南京2021 F题 代码+注释

贵州谢高低 2022-04-28 阅读 60
c++
#include<bits/stdc++.h>
using namespace std;
int n,m,t;
double p;
double qout(int k)
{
	return (1.0*k*n+m)/(1-pow(1-p,k));//消耗的时间/爆炸的概率 
}
int main()
{
	cin>>t;
	while(t--)
	{
		cin>>n>>m>>p;
		p=p/10000;
		int l=1,r=1e9;//不太理解为什么二分的上界要大于1e5才能过 
		while(l<r)
		{
			int mid=l+r>>1;
			if(qout(mid)<=qout(mid+1))
			r=mid;
			else
			l=mid+1;
		}
		printf("%.10lf\n",qout(r));
	}
	
}
举报

相关推荐

0 条评论