zoukankan      html  css  js  c++  java
  • 「一本通 1.2 例 3」曲线

    https://loj.ac/problem/10013

    题解:这道题运用的是新方法三分,然后稍微总结一下三分(就是说具有一定的单调性,找最大最小值,然后和二分基本类似,就是说特性就是说当前两个点比较,较优的点和最优点在相对了较差点的同侧,就是说那边差就把范围定到那里去)

    错误:要注意精度问题,一般定到1e-9或1e-11;

    代码

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    using namespace std;
    int t,n;
    double a[101000],b[101000],c[101000];
    double f(double x){
        double maxa=-1e9;
        for(int i=1;i<=n;i++)
            maxa=max(maxa,x*x*a[i]+x*b[i]+c[i]);
        return maxa;
    }
    int main(){
        scanf("%d",&t);
        while(t--){
            scanf("%d",&n);
            for(int i=1;i<=n;i++)
                scanf("%lf%lf%lf",&a[i],&b[i],&c[i]);
            double l=0.0,r=1000.0,eps=1e-11;//wrong
            while(r-l>eps){
                double midl=l+(r-l)/3.0,midr=r-(r-l)/3.0;
                if(f(midl)<f(midr))r=midr;
                else l=midl;
            }
            printf("%.4f
    ",f(l));
        }
        return 0;
    } 
  • 相关阅读:
    计数排序
    CSS3变形
    前端内存泄露问题
    复杂对象的深拷贝
    JavaScript基本数据类型——Symbol
    随机打乱数组
    唯一重复的数字
    src和href的区别
    iframe的缺点
    link和@import的区别
  • 原文地址:https://www.cnblogs.com/linzeli/p/10550720.html
Copyright © 2011-2022 走看看