zoukankan      html  css  js  c++  java
  • [日常训练]curves

    Description

    Y同学的弟弟小Z昨天学习了数学中的一元二次函数,但是由于学业不精,他一个晚上都在缠着小Y问一元二次函数的极值问题,小Y烦不可耐,于是,想请你帮忙弄个程序来应付小Z。程序要完成以下任务:

    给你N个二次函数,记第i个为:f_i(x)=a_ix^2+b_ix+c_i

    设函数F(x)=max{f_1(x),f_2(x)...f_n(x)}

    请你求出F(x)的在区间[0,1000]上的最小值,结果保留3位有效数字。

    Input

    输入文件第一行是一个整数N
    接下来N行,每行3个实数a_i,b_i,c_i,之间有一个空格分隔。

    Output

    输出一行一个实数,表示F(x)的在区间[0,1000]上的最小值。

    Sample Input

    2
    3 ­-2 1
    2 -4 2

    Sample Output

    0.686

    HINT

    1$leq$N$leq$100000,0$leq$a_i$leq$100,|b_i|$leq$5000,|c_i|$leq$5000

    Solution

    本题二分ans三分都可过.

    二分答案,判断f_i(x)$leq$ans的定义域的交与[0,1000]是否有交集.

    画图可知,F(x)为单峰函数.三分x值,判F(x).

    注意精度.

    #include<cmath>
    #include<ctime>
    #include<stack>
    #include<queue>
    #include<cstdio>
    #include<vector>
    #include<cstring>
    #include<cstdlib>
    #include<iostream>
    #include<algorithm>
    #define eps 1e-10
    #define M 1000
    #define N 100005
    using namespace std;
    struct func{
        double a,b,c;
    }a[N];
    int n;
    double l=0.0,r=1000.0,m1,m2;
    inline double f(double x){
        double ret=a[1].a*x*x+a[1].b*x+a[1].c;
        for(int i=2;i<=n;++i)
            ret=max(ret,a[i].a*x*x+a[i].b*x+a[i].c);
        return ret;
    }
    inline void init(){
        scanf("%d",&n);
        for(int i=1;i<=n;++i)
            scanf("%lf%lf%lf",&a[i].a,&a[i].b,&a[i].c);
        while(l+eps<r){
            m1=(r-l)/3.0;m2=l+m1*2.0;m1+=l;
            if(f(m1)>f(m2)) l=m1+eps;
            else r=m2;
        }
        printf("%.3lf
    ",f(l));
    }
    int main(){
        freopen("curves.in","r",stdin);
        freopen("curves.out","w",stdout);
        init();
        fclose(stdin);
        fclose(stdout);
        return 0;
    }
  • 相关阅读:
    指定时间的月初和月末一天的写法
    EF写distinct
    服务的调试和安装
    EF写INNER JOIN 链接
    BZOJ 1825: [JSOI2010]蔬菜庆典
    P4171 [JSOI2010]满汉全席
    Educational Codeforces Round 71 (Rated for Div. 2) Solution
    P4292 [WC2010]重建计划
    P3724 [AH2017/HNOI2017]大佬
    P5504 [JSOI2011]柠檬
  • 原文地址:https://www.cnblogs.com/AireenYe/p/6049222.html
Copyright © 2011-2022 走看看