UVa1476 Error Curves
画出函数图像后,发现是一个类似V字型的图。
可以用三分法找图像最低点
WA了一串,之后发现是读入优化迷之被卡。
1 /*by SilverN*/ 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #include<cstdio> 6 #include<cmath> 7 using namespace std; 8 const int mxn=10020; 9 int a[mxn],b[mxn],c[mxn]; 10 int n; 11 double f(double x){ 12 double ans=a[1]*x*x+b[1]*x+c[1]; 13 for(int i=2;i<=n;i++) 14 ans=max(ans,a[i]*x*x+b[i]*x+c[i]); 15 return ans; 16 } 17 int main(){ 18 int T; 19 scanf("%d",&T); 20 int i,j; 21 while(T--){ 22 scanf("%d",&n); 23 for(i=1;i<=n;i++){ 24 scanf("%d%d%d",&a[i],&b[i],&c[i]); 25 // a[i]=read();b[i]=read();c[i]=read(); 26 // printf("%d %d %d\n",a[i],b[i],c[i]); 27 } 28 double l=0,r=1000; 29 for(i=1;i<=450;i++){ 30 double mid1=(l*2+r)/3; 31 double mid2=(l+r*2)/3; 32 if(f(mid1)<f(mid2))r=mid2; 33 else l=mid1; 34 } 35 printf("%.4f\n",f(l)); 36 } 37 return 0; 38 }
本文为博主原创文章,转载请注明出处。