全TLE求调
查看原帖
全TLE求调
595999
ZXXS楼主2022/11/12 17:31
#include<bits/stdc++.h>
#define debug(x) cerr<<#x<<"="<<(x)<<endl;
using namespace std;
inline void write(int x)
{
	if(x<0)
	{
		putchar('-');
		x=-x;
	}
	if(x>9)
		write(x/10);
	putchar(x%10+'0');
}
inline int read()
{
	int x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9')
	{
		if(c=='-')
			f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9')
	{
		x=x*10+c-'0';
		c=getchar();
	}
    return x*f;
}
int N;
double l,r,a[15];
double f(double x)
{
	double f=0;
	for(int i=N;i>=0;i--)
	{
		double t=1;
		for(int j=1;j<=i;j++)
			t*=x;
		f+=a[i]*t;
	}
	return f;
}
int main()
{
    N=read();
    scanf("%lf %lf",&l,&r);
    for(int i=N;i>=0;--i)
    {
    	scanf("%lf",&a[i]);
	}
    double lmid,rmid,m;
    while(r-l>1e-6)
    {
    	m=(l+r)/2;
    	lmid=m-1e-5;
    	rmid=m+1e-5;
    	if(f(lmid)<f(rmid))
    	{
    		l=lmid;
		}
		else
		{
			r=rmid;
		}
	}
	printf("%lf",m);
    return 0;
}
2022/11/12 17:31
加载中...