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

    Now, here is a fuction:
      F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100)
    Can you find the minimum value when x is between 0 and 100.

    题意,输入一个y,然后确定这个函数的最小值

    很明显是一道2分的题,可是一开始做的时候不会分啊啊啊啊啊啊啊啊啊啊啊啊啊啊(电子竞技菜是原罪)呜呜呜呜呜

    其实耶不能怪我。。。。要二分的话,需要给F(x)求导,发现它在定义域内是单调递增的,所以给F求导,然后用二分,求出它的0点

    再带回原来的表达式,代码如下

    ps:我好气啊,当时都想到了导数,但不能明确的确定它的单调性,唉,可惜。

    #include <bits/stdc++.h>
    #define INF 0x3f3f3f3f
    const double PI=3.1415926535897931;
    const long long sale=1e9+10;
    const int MA= 1e7+10;
    const int ma= 2*1e5+10;
    const int few=1e3+10;
    const double eps=1e-7;
    using namespace std;
    //////////////////////////////////////////////
    double f(double x,double y)
    {
        return 6*pow(x,7)+8*pow(x,6)+7*pow(x,3)+5*pow(x,2)-y*x;
    }
    double f1(double x,double y)
    {
        return 42*pow(x,6)+48*pow(x,5)+21*pow(x,2)+10*x-y;
    }
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
            double y;
            cin>>y;
            double l=0,r=100;
            double mid;
            while(r-l>eps)
            {
                mid=(l+r)/2;
                if(f1(mid,y)<0)
                    l=mid;
                else
                    r=mid;
    
            }
            double ans=f(l,y);
            printf("%0.4f
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    CSU-ACM2020寒假集训比赛2
    js动画(一)
    响应式基本知识
    移动web基本知识
    premere cs4绿色版 安装 并且 视频导出 讲解
    样式重置
    html5图片标签与属性
    我眼中的科研
    Chrome浏览器上无法使用西瓜影音???
    双系统引导菜单设置
  • 原文地址:https://www.cnblogs.com/Aracne/p/12189693.html
Copyright © 2011-2022 走看看