本文主要是介绍Error Curves HDU - 3714(三分),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Error Curves
题目链接:HDU - 3714题意:x在区间[0,1000]取值时,n个函数中的最大值的最小值;(最大值指x固定,n个函数的最值; 最小值指在所有得到的最大值中的最小值);
三分x;
注意精度问题!!!此题精度要高!!!
#include <bits/stdc++.h>
#define eps 1e-10//就是这里一开始是1e-8一直WA,,,
#define INF -1e12
using namespace std;
int n;
double a[10010], b[10010], c[10010];
double cal(double x){double temp=INF;for(int i=0; i<n; i++){temp=max(temp, a[i]*x*x+b[i]*x+c[i]);}return temp;
}
int main(){int T;scanf("%d", &T);while(T--){scanf("%d", &n);for(int i=0; i<n; i++){scanf("%lf%lf%lf", &a[i], &b[i], &c[i]);}double l=0.0, r=1000.0;while(r-l>eps){double mid=l+(r-l)/3;double midd=r-(r-l)/3;if(cal(mid)>cal(midd)) l=mid;else r=midd;}printf("%.4lf\n", cal(l));}return 0;
}
这篇关于Error Curves HDU - 3714(三分)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!