您的位置:首页 > 其它

UVALive - 5009 Error Curves (三分)

2017-08-16 18:21 309 查看
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<cmath>
#include<string>
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N =1e5+10;
const int inf = 0x3f3f3f3f;
struct node
{
double a, b, c;
}p
;
int n;
double get(double x)
{
double ans=0;
ans=p[0].a*x*x+p[0].b*x+p[0].c;
for(int i=1;i<n;i++) ans=max(ans,p[i].a*x*x+p[i].b*x+p[i].c);
return ans;
}

int main()
{
int t;
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
for(int i=0;i<n;i++) scanf("%lf %lf %lf", &p[i].a, &p[i].b, &p[i].c);
double l=0, r=1000, ans;
for(int i=0;i<100;i++)
{
double x1=l+(r-l)/3, x2=(r-(r-l)/3);
double y1=get(x1), y2=get(x2);
if(y1<y2) ans=y1,r=x2;
else ans=y2,l=x1;
}
printf("%.4f\n",ans);
}
return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: