三分学习笔记

三分学习笔记

其实很简单,就是每次看看此点左右的哪个大,贪心地选:

#include<bits/stdc++.h>
using namespace std;
const double eps=1e-7;
const int N=16;
int n;
double t[N],l,r;
double f(double x){
   double ans=0;
   for(int i=0;i<=n;++i) ans=ans*x+t[i];
} 
int main(){
    scanf("%d%lf%lf",&n,&l,&r);
    for(int i=0;i<=n;++i) scanf("%lf",&t[i]);
    while(fabs(r-l)>=eps){
        double mid=(l+r)/2;
        if(f(mid+eps)>f(mid-eps)) l=mid;
        else r=mid;
    }
    printf("%.5lf",r);
    return 0;
}
posted @ 2019-10-24 22:09  lsoi_ljk123  阅读(116)  评论(0编辑  收藏  举报