三分学习笔记
三分学习笔记
其实很简单,就是每次看看此点左右的哪个大,贪心地选:
#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;
}