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;
    }
    
  • 相关阅读:
    细说Cookie(转)
    Custom Exception in ASP.NET Web API 2 with Custom HttpResponse Message
    内核中的定时器
    ibus拼音安装_ubuntu10.04
    linux模块
    zebra/quagga线程分析
    vim常用配置
    rar安装和使用
    zebra/quagga
    netsnmp编译动态库
  • 原文地址:https://www.cnblogs.com/fusiwei/p/14082079.html
Copyright © 2011-2022 走看看