zoukankan      html  css  js  c++  java
  • hdu Strange fuction

    本题是一道二分题,但是要利用导数来求最小值。对原函数进行求导,得到的导函数为f(x)=42*pow(x,6)+48*pow(x,5)+21*pow(x,2)+10*x-y;因为0<=x<=100,所以当

    y>46802200时,f(x)恒小于0,故F(x)单调递减。当y<46802200时,可知原函数先递减后递增,因此可利用二分找到导函数为零的x的值,再将此x带入原函数就可以得到最小值。

    #include"iostream"
    #include"stdio.h"
    #include"algorithm"
    #include"string.h"
    #include"cmath"
    #define mi 1e-8
    using namespace std;
    double cf(double x,double y)
    {
        return  6*pow(x,7)+8*pow(x,6)+7*pow(x,3)+5*x*x-y*x;
    }
    double cff(double x)
    {
        return 42*pow(x,6)+48*pow(x,5)+21*pow(x,2)+10*x;
    }
    int main()
    {
        int t;
        cin>>t;
        while(t--){
        double y;
        cin>>y;
        if(y>=46802200)
        {double t=cf(100.0,y);printf("%.4lf
    ",t);}
        else
        {
            double a=0.0;
            double b=100.0;
            while(b-a>mi)
            {
                double m=(b+a)/2.0;
                if(cff(m)<y) a=m;
                else b=m;
            }
            printf("%.4lf
    ",cf(a,y));
        }
        }
        return 0;
    }
    View Code
  • 相关阅读:
    2-jenkins持续集成体系介绍
    第六天打卡
    第五天打卡(find用法)
    第五天打卡
    第四天打卡
    第三天打卡
    第一天:定个小目标,学习REDHAT,希望能去考下RHCE
    day12
    Python3的List操作和方法
    Python3字符串的操作
  • 原文地址:https://www.cnblogs.com/acm-jing/p/4321073.html
Copyright © 2011-2022 走看看