首页 > 其他 > 详细

HDU 2899 三分

时间:2014-03-12 04:24:00      阅读:504      评论:0      收藏:0      [点我收藏+]

  我们对这个函数求二阶导数,发现他的二阶导数是恒大于0的,那么他的导数是单调的,且在某时刻为0,那么这时的x值就是极值处的x值,其实题目说了,有最小值,那么我们三分水过去就好了。

  反思:精度不够,40次循环就WA,50次就可以A。

bubuko.com,布布扣
//By BLADEVIL
#include <iostream>
#include <cstdio>

using namespace std;

int task;
double y;

double f(double x) {
    return (6*x*x*x*x*x*x*x+8*x*x*x*x*x*x+7*x*x*x+5*x*x-y*x);
}

int main() {
    scanf("%d",&task);
    while (task--) {
        cin>>y;
        double l=0,r=100;
        for (int i=1;i<=50;i++) {
            double mid1=l+(r-l)/3,mid2=mid1+(r-l)/3;
            if (f(mid1)>f(mid2)) l=mid1; else r=mid2; 
        }
        printf("%.4f\n",f(l));
    }
    return 0;
}
bubuko.com,布布扣

HDU 2899 三分,布布扣,bubuko.com

HDU 2899 三分

原文:http://www.cnblogs.com/BLADEVIL/p/3594386.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!