二分样例过不去,求调
  • 板块P1883 函数
  • 楼主Jim_Franklin
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/3/25 17:23
  • 上次更新2023/10/23 20:31:53
查看原帖
二分样例过不去,求调
686342
Jim_Franklin楼主2023/3/25 17:23
//This Code was made by Jim_Franklin.
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ri register
#define pii pair<int,int>
const int inf=0x3f3f3f3f;
inline int rd()
{
	int x=0,y=1;char c=getchar();
	for(;c<'0'||c>'9';c=getchar())if(c=='-')y=-1;
	for(;c>='0'&&c<='9';c=getchar())x=(x<<1)+(x<<3)+(c^48);
	return x*y;
}
const double eps=1e-7;
const int N=1e4+5;
int t,a[N],b[N],c[N],n;
double l,r;
double f(int i,double x){
	return x*x*a[i]+x*b[i]+c[i];
}
double check(double k)
{
	double maxn=f(1,k);
	for(int i=2;i<=n;i++)maxn=max(maxn,f(i,k));
	return maxn;
}
int main()
{
	t=rd();
	while(t--)
	{
		n=rd();
		for(int i=1;i<=n;i++)a[i]=rd(),b[i]=rd(),c[i]=rd();
		l=0;r=1e3;
		while(r-l>=eps)
		{
			double mid=(l+r)/2;
			if(check(mid)<=check(r))r=mid-eps;
			else if(check(mid)<=check(l))l=mid+eps;
		}
		printf("%.4lf\n",check(l));
	}
	return 0;
}

2023/3/25 17:23
加载中...