码迷,mamicode.com
首页 > 其他好文 > 详细

LA5009 Error Curves

时间:2018-01-29 11:24:26      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:click   log   ble   tchar   read   post   pre   getch   pos   

题目大意:给定n个二次函数fi(x),规定F(x) = max(fi(x)),求F在[0,1000]上的max

 

其实F(x)也是一个单峰函数,因为如果出现双峰,显然有一个可以继续往上走把另一个峰遮住,即另一个峰不可能是max

三分即可

被精度卡了半天

技术分享图片
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cstdlib>
 5 #include <algorithm>
 6 #include <queue>
 7 #include <vector>
 8 #include <map>
 9 #include <string> 
10 #include <cmath> 
11 #define min(a, b) ((a) < (b) ? (a) : (b))
12 #define max(a, b) ((a) > (b) ? (a) : (b))
13 #define abs(a) ((a) < 0 ? (-1 * (a)) : (a))
14 template<class T>
15 inline void swap(T &a, T &b)
16 {
17     T tmp = a;a = b;b = tmp;
18 }
19 inline void read(int &x)
20 {
21     x = 0;char ch = getchar(), c = ch;
22     while(ch < 0 || ch > 9) c = ch, ch = getchar();
23     while(ch <= 9 && ch >= 0) x = x * 10 + ch - 0, ch = getchar();
24     if(c == -) x = -x;
25 }
26 
27 const double INF = 0x3f3f3f3f;
28 const double eps = 0.0000000001;
29 
30 
31 int t,n,a[10100],b[10100],c[10010];
32 
33 double f(double x)
34 {
35     double ma = x * x * a[1] + x * b[1] + c[1], t;
36     for(int i = 2;i <= n;++ i) 
37     {
38         t = x * x * a[i] + x * b[i] + c[i];
39         //if(!cmp(t, ma)) ma = t;
40         ma = max(ma, t);
41     }
42     return ma;
43 }
44 
45 int main()
46 {
47     read(t);
48     for(;t;--t)
49     {
50         read(n);
51         for(int i = 1;i <= n;++ i) read(a[i]), read(b[i]), read(c[i]);
52         double l = 0, r = 1000, ans, mid1, mid2;
53         while(r - l - eps >= 0)
54         {
55             mid1 = l + (r - l) / 3.0;mid2 = r - (r - l) / 3.0;
56             if(f(mid1) - f(mid2) >= 0) l = mid1;
57             else r = mid2;
58         }
59         printf("%.4lf\n", f(l));
60     }
61     return 0;
62 }
LA5009

 

LA5009 Error Curves

标签:click   log   ble   tchar   read   post   pre   getch   pos   

原文地址:https://www.cnblogs.com/huibixiaoxing/p/8375760.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!