zoukankan      html  css  js  c++  java
  • hdu3714(三分)

    题意:

      n个二次函数,求定义域[0, 1000]时候每个函数的最小值当中的最大值。精确到1e-4

    解决:

      三分,eps = 1e-9能过,因为二次函数的函数值精确到1e-4所以自变量x精确度必须高于1e-8

     1 #include <bits/stdc++.h>
     2 
     3 const int MAXN = 1e4+10;
     4 double eps = 1e-9;
     5 
     6 int n;
     7 int a[MAXN], b[MAXN], c[MAXN];
     8 
     9 double fun(double x)
    10 {
    11     double res = a[1] * x*x + b[1]*x + c[1];
    12     for (int i = 2; i <= n; ++i) {
    13         res = std::max(res, a[i] * x *x + b[i] * x + c[i]);
    14     }
    15     return res;
    16 }
    17 
    18 int main()
    19 {
    20     int T;
    21     scanf("%d", &T);
    22     while (T--) {
    23         scanf("%d", &n);
    24         for (int i = 1; i <= n; ++i)
    25             scanf("%d%d%d", a+i, b+i, c+i);
    26         double l = 0, r = 1000;
    27         while ( (r - l) > eps) {
    28 //            printf("l = %f, r = %f
    ", l, r);
    29             double ml = l + (r - l) / 3;
    30             double mr = r - (r - l) / 3;
    31             if (fun(ml) > fun(mr))
    32                 l = ml + eps;
    33             else
    34                 r = mr - eps;
    35         }
    36         printf("%.4f
    ", fun(l));
    37     }
    38 }
  • 相关阅读:
    20150306+Linux安装+常用命令-01
    补充:javascript
    补充:数组循环与思路
    补充:控制语句
    DOM操作的概念
    什么是数组?
    补充:MySQL整理
    MySQL数据查询
    补充:MySQL经典45道题型
    表单 form:标签、类型、注意事项
  • 原文地址:https://www.cnblogs.com/takeoffyoung/p/4933944.html
Copyright © 2011-2022 走看看