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\n" ,solve(y));
   }
   return 0;
}
   
   



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值