zoukankan      html  css  js  c++  java
  • hdu2899 三分

    题意:
         给你个函数,F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x ,给你一个y,x的范围是0--100
    问你最小的 F(x)

    思路:

          本人推数学公式啥的没啥天赋,一看这个题目肯定是三分(自己感觉),然后直接敲完就ac了,估计正解什么的还要转换这个公式...然后...在然后..最后求一下2阶导函数,根据二阶但函数的正负判断什么凹凸性什么的(自己感觉),抱歉.....

    #include<stdio.h>
    #include<math.h>
    
    #define eps 1e-9
    
    double Fun(double x ,double y)
    {
       return 6.0 * pow(x ,7.0) + 8 * pow(x ,6.0) + 7 * pow(x ,3.0) + 5 * pow(x ,2.0) - x * y;
    }
    
    double solve(double y)
    {
       double low ,up ,mid ,mmid;
       double f1 ,f2;
       low = 0 ,up = 100.0;
       while(1)
       {
          mid = (low + up) / 2;
          mmid = (mid + up) / 2;
          f1 = Fun(mid ,y);
          f2 = Fun(mmid ,y);
          if(f1 > f2) low = mid;
          else up = mmid;
          if(up - low < eps) break;
       }
       return f1;
    }
    
    int main ()
    {
       int t;
       double y;
       scanf("%d" ,&t);
       while(t--)
       {
          scanf("%lf" ,&y);
          printf("%.4lf
    " ,solve(y));
       }
       return 0;
    }
       
       
    
    
    

  • 相关阅读:
    SendMessage 和 SendMessageTimeout 可能存在异常(除超时)
    类型强制转换符 与 + 符的优先级
    茵茵的第一课
    C小加 之 随机数
    16进制的简单运算
    交换输出
    计算球体积
    a letter and a number
    A problem is easy
    Coin Test
  • 原文地址:https://www.cnblogs.com/csnd/p/12063131.html
Copyright © 2011-2022 走看看