三分

https://www.luogu.com.cn/problem/P3382
函数一定要严格单调

#include<bits/stdc++.h>
#define db double
const db eps=1e-8;
using namespace std;

const int N=20;
int n; db l,r,a[N];

inline db f(db x) {
	db ret=0;
	for(int i=n;i>=0;i--) {
		ret=ret*x+a[i];
	}
	return ret;
}

int main() {
	scanf("%d%lf%lf",&n,&l,&r);
	for(int i=n;i>=0;i--) {
		scanf("%lf",&a[i]);
	}
	while(r-l>eps) {
		db mid=(l+r)/2;
		if(f(mid+eps)>f(mid-eps)) l=mid;
			else r=mid;
	} 
	printf("%.5f\n",l);
	return 0;
}
posted @ 2020-11-20 21:02  wwwsfff  阅读(165)  评论(0)    收藏  举报