P3382 【模板】三分法

链接Miku

三分模板

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n;
double l,r;
double xi[20];
double xiu=0.000001;
double check(double x){
	double ans=0.0;
	for(int i=1;i<=n;++i){
		double anss=1.0;
		for(int j=1;j<=i;++j)
		anss*=x;
		ans=ans+anss*xi[n-i+1];
	}
	return ans;
}
int main(){
	scanf("%d%lf%lf",&n,&l,&r);
	for(int i=1;i<=n;++i){
		scanf("%lf",&xi[i]);
	}
	while(l+xiu<r){
		double ll=l+(r-l)*0.3;
		double rr=l+(r-l)*0.7;
		if(check(ll)<check(rr))
			l=ll;
			else
			r=rr;
	}
	printf("%.5lf",l);
	return 0;
}
posted @ 2020-09-05 21:26  Simex  阅读(124)  评论(0编辑  收藏  举报