博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 2899 Strange fuction
阅读量:5237 次
发布时间:2019-06-14

本文共 1220 字,大约阅读时间需要 4 分钟。

还没学过导数,不会做……

#include 
#include
using namespace std;//先求导函数,可知f'(x)=g'(x)+y,g'(x)为递增函数,//1)若导函数最大值小于0,即g'(100)+y<0.则原函数在区间内单调递减.最小值为f(100).//2)若导函数最小值大于0,即g'(0)=y>0,则原函数在区间内单调递增,最小值为f(0).//3)若导函数有正有负,因导函数单调递增,所以必然从负值开始穿过x轴,导函数由负变正,原函数先减后增,其0点即原函数的最小值点.//(或求二阶导数,在区间内,f''(x)>0,则原函数为凹函数,有最小值点.否则,为凸函数,有最大值点)double f(double x,int y){ return 6 * pow(x,7) + 8 * pow(x,6) + 7 * pow(x,3) + 5 * pow(x,2) - y * x; }double g(double x,int y){ return 42 * pow(x,6) + 48 * pow(x,5) + 21 * pow(x,2) + 10 * x - y;}int main(int argc, const char *argv[]){ int T; cin>>T; while(T--) { int Y; cin>>Y; if(g(100.0,Y)<0) printf("%.4lf\n",f(100,Y)); else if(g(0.0,Y)>0) printf("%.4lf\n",f(0,Y)); else { double low = 0 , heigh = 100.0; double mid ; while (heigh-low>1e-8) { mid = (low+heigh)/2; if(g(mid,Y)>0) { heigh = mid; }else { low = mid; } } printf("%.4lf\n",f(mid,Y)); } } return 0;}

 

转载于:https://www.cnblogs.com/forever97/p/3539536.html

你可能感兴趣的文章
component和bean区别
查看>>
CAP
查看>>
jquery中attr和prop的区别
查看>>
ORACLE not available如何解决
查看>>
Linux iptables详解(1)
查看>>
boost 同步定时器
查看>>
vue封装element中table组件
查看>>
Shell学习笔记 - 分支语句
查看>>
PAT Basic 1013
查看>>
[ROS] Chinese MOOC || Chapter-4.4 Action
查看>>
简单的数据库操作
查看>>
解决php -v查看到版本与phpinfo()版本不一致问题
查看>>
在线制作logo
查看>>
JS高级 - 面向对象4(json方式面向对象)
查看>>
Java反射之修改常量值
查看>>
用UIWebView加载本地图片和gif图
查看>>
jmeter远程分布执行遇到的网卡坑(A Test is currently running,stop or ....)
查看>>
Python正则表达式中的re.S
查看>>
Xcode 中设置部分文件ARC支持
查看>>
iOS-解决iOS8及以上设置applicationIconBadgeNumber报错的问题
查看>>