Error Curves

UVALIVE-5009

三分

 1 #include <iostream>
 2 using namespace std;
 3 #include<string.h>
 4 #include<set>
 5 #include<stdio.h>
 6 #include<math.h>
 7 #include<queue>
 8 #include<map>
 9 #include<algorithm>
10 #include<cstdio>
11 #include<cmath>
12 #include<cstring>
13 #include <cstdio>
14 #include <cstdlib>
15 #include<cstring>
16 int n;
17 struct lll
18 {
19     double a,b,c;
20 }TM[10010];
21 double qqq(double z)
22 {
23     double max1=TM[0].a*z*z+TM[0].b*z+TM[0].c;
24     for(int i=1;i<n;i++)
25         max1=max(max1,TM[i].a*z*z+TM[i].b*z+TM[i].c);
26         return max1;
27 
28 }
29 int main()
30 {
31     int t;
32     cin>>t;
33     while(t--)
34     {
35         cin>>n;
36         for(int i=0;i<n;i++)
37             cin>>TM[i].a>>TM[i].b>>TM[i].c;
38         double tou=0,wei=1000;
39         double min1,min2;
40         for(int i=0;i<1000;i++)
41         {
42             min1=(tou+wei)/2;
43             min2=(min1+wei)/2;
44             if(qqq(min1)<qqq(min2))
45                 wei=min2;
46             else
47                 tou=min1;
48         }
49         printf("%.4lf\n",qqq((tou+wei)/2));
50     }
51     return 0;
52 }
View Code

 

 

posted @ 2017-08-05 10:29  小小超plus  阅读(157)  评论(0编辑  收藏  举报