zoukankan      html  css  js  c++  java
  • 洛谷 P3382 【模板】三分法

    洛谷 P3382 【模板】三分法

    洛谷传送门

    题目描述

    如题,给出一个 NN 次函数,保证在范围 [l, r][l,r] 内存在一点 xx,使得 [l, x][l,x] 上单调增,[x, r][x,r] 上单调减。试求出 xx 的值。

    输入格式

    第一行一次包含一个正整数 NN 和两个实数 l, rl,r,含义如题目描述所示。

    第二行包含 N + 1N+1 个实数,从高到低依次表示该 NN 次函数各项的系数。

    输出格式

    输出为一行,包含一个实数,即为 xx 的值。四舍五入保留 55 位小数。


    题解:

    三分模板:

    代码:

    #include<cstdio>
    #include<cmath>
    using namespace std;
    const int maxn=20;
    const double eps=1e-6;
    int n;
    double l,r;
    double a[maxn];
    double calc(double x)
    {
    	double ret=0;
    	for(int i=0;i<=n;i++)
    		ret+=(pow(x,i)*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)
    	{
    		double mid1=l+(r-l)/3;
    		double mid2=r-(r-l)/3;
    		if(calc(mid1)<calc(mid2))
    			l=mid1;
    		else
    			r=mid2;
    	}
    	printf("%.5lf
    ",l);
    	return 0;
    }
    
  • 相关阅读:
    [转] linux下查看文件编码及修改编码
    offset Dimensions 详解
    style属性
    Using NodeLists
    Element Children
    Node、Document关系的探究
    Document、HTMLDocument关系的探究
    BOM Summary P268-P269
    Intervals and Timeouts
    Window Position
  • 原文地址:https://www.cnblogs.com/fusiwei/p/14082079.html
Copyright © 2011-2022 走看看