zoukankan      html  css  js  c++  java
  • HDU2899Strange fuction(二分/三分)

    传送门 

    题目大意:求 F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100);的最小值

    题解:求个导,二分导函数零点,就是原函数最小值所在的x。

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    #define LL long long
    using namespace std;
    
    int T;
    
    LL y;
    
    double cal(double x)
    {
        return 42.*pow(x,6)+48.*pow(x,5)+21.*pow(x,2)+10.*x-y;    
    }
    
    double mul(double x)
    {
        return 6.*pow(x,7)+8.*pow(x,6)+7.*pow(x,3)+5.*pow(x,2)-y*x;
    }
    
    int main()
    {
        scanf("%d",&T);
        while(T--)
        {
            scanf("%lld",&y);
            double ans,l=0,r=100;
            while(r-l>1e-5)
            {
                double mid=(l+r)/2;
            //    cout<<mid<<endl;
                if(cal(mid)<=0) ans=mid,l=mid;
                else r=mid; 
            }    
            double res=mul(ans);
            printf("%.4lf
    ",res);
        }    
        return 0;
    }
  • 相关阅读:
    Redis内存回收策略
    7、IMS
    6、端局、汇接局、关口局、长途局
    5、IMS网元
    4、IMS
    3、NAT
    2、SIP
    1、B2BUA
    九、数据库——sql server 2008导入excel
    六十三、android pad
  • 原文地址:https://www.cnblogs.com/zzyh/p/11990768.html
Copyright © 2011-2022 走看看