您的位置:首页 > 其它

la 5009 - Error Curves(三分)

2014-04-27 16:45 295 查看
la 5009 - Error Curves

单峰函数用三分

#include<stdio.h>
#include<string.h>
#include<math.h>
#define MAXN 10005
const double eps=1e-9;
int a[MAXN],b[MAXN],c[MAXN];
int n;
double max(double a,double b) {return a>b?a:b;}
double f(double x)
{
double ans=a[0]*x*x+b[0]*x+c[0];
for(int i=1;i<n;i++)
{
ans=max(ans,a[i]*x*x+b[i]*x+c[i]);
}
return ans;
}
int main()
{
int cas;
scanf("%d",&cas);
while(cas--)
{
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d%d%d",&a[i],&b[i],&c[i]);
double l=0,r=1000;
while(l+eps<r)
{
double m1=(l+r)/2;
double m2=(m1+r)/2;
if(f(m1)+eps<f(m2)) r=m2;
else l=m1;
}
printf("%.4lf\n",f(l));
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  三分