ABC的D
  • 板块学术版
  • 楼主hahaxiang
  • 当前回复8
  • 已保存回复8
  • 发布时间2022/11/26 21:47
  • 上次更新2023/10/27 01:19:28
查看原帖
ABC的D
713562
hahaxiang楼主2022/11/26 21:47
#include<bits/stdc++.h>
#define int double
using namespace std;
int a,b;
long long r=1,l=2;
double c;
bool check(long long x)
{
	double s1=double(sqrt(double(x*1.0-1.0)));
	double s2=double(sqrt(double(x*1.0)));
	c=double(double(a*1.0)/s1-double(a*1.0)/s2);
	if(c>double(b*1.000000000))
	return true;
	else
	return false;
}
signed main()
{
	r<<=60;
	cin>>a>>b;
	c=double(double(a)/sqrt(1.0000000)-double(a)/sqrt(2.0000000));
	if(c<=double(b*1.000000000))
	{
		cout<<setprecision(26)<<a;
		return 0;
	}
	while(l<r)
	{
		long long mid=(l+r)/2+1;
		if(check(mid)==false)
		{
			r=mid-1;
		}
		else
		{
			l=mid;
		}
	}
	c=double(double(double(b)*double(l*1.0-1.0))+double(double(a*1.0000000000)/double(sqrt(double(l*1.000)))));
	cout<<setprecision(26)<<c;
	return 0;
}

题目要求是误差小于10^-6,代码与最后一个样例误差超过10却还是ac了

2022/11/26 21:47
加载中...