(二分) Strange fuction--HDOJ
来源:互联网 发布:康佳lc47d560dc 网络 编辑:程序博客网 时间:2024/05/19 20:41
Strange fuction
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 749 Accepted Submission(s): 609
Problem Description
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.
Input
The first line of the input contains an integer T(1<=T<=100) which means the number of test cases. Then T lines follow, each line has only one real numbers Y.(0 < Y <1e10)
Output
Just the minimum value (accurate up to 4 decimal places),when x is between 0 and 100.
Sample Input
2
100
200
Sample Output
-74.4291
-178.8534
Author
Redow
Recommend
lcy
总结:
输入y之后,函数只剩下x一个变量,求函数的最小值,先对其求导,得到F’ = 42 * x^6+48*x^5+21*x^2+10*x-y(0 <= x <=100)
可以看出导函数是递增的,当x比较小的时候,导函数的值是小于零的,x比较大时,导函数是大于零的,也就是说,F函数是先减后增的,那么导函数等于零的时候,也就是F函数最小的时候。从0到100找到一个值,可以用二分的思路来做,精度控制在1e-6就可以了
#include<iostream>#include<algorithm>#include<string.h>#include<stdio.h>#include<string>#include<math.h>using namespace std;double F(double x,double y){ return 42*pow(x,6)+48*pow(x,5)+21*pow(x,2)+10*x-y;}int main(void){ // freopen("in.txt","r",stdin); int ncase; cin >> ncase; while(ncase--) { double y,tmp,ans=0; scanf("%lf",&y); double st=0,ed=100,mid; while((ed-st) > 0.000001) { mid = (st + ed) / 2; if(F(mid,y) > 0) ed = mid; else st = mid; } ans = 6*pow(st,7)+8*pow(st,6)+7*pow(st,3)+5*st*st-y*st; printf("%.4lf\n",ans); } return 0;}
- (二分) Strange fuction--HDOJ
- HDOJ 2899 Strange fuction(二分,求导。。)
- HDOJ 2899 Strange fuction(二分 || 三分)
- HDOJ 2899 Strange fuction(二分,三分)
- HDOJ--2899Strange fuction!!!!二分法 (三分)
- hdoj 2899 Strange fuction
- hdu - 2899 - Strange fuction(二分)
- Strange fuction 2899 (二分+数学求导)
- hdu 2899 Strange fuction (求导 + 二分)
- HDU 2899 Strange fuction(二分)
- hdu 2899 Strange fuction (二分)
- hdu2899 Strange fuction (二分+导数)
- hdu2899 Strange fuction(二分兼三分)
- HDU 2899 Strange fuction(二分||三分)
- HDU2899:Strange fuction(二分 + 数学)
- HDU 2899 Strange fuction(二分,三分)
- [二分]HDOJ2899 Strange fuction
- HDU2899 Strange fuction 【二分】
- 剑指offer面试题[41]-和为s的两个数VS和为s的连续正数序列
- CodeForces
- C#继承
- centos6.7系统中zabbix3.0的安装
- 最高的奖励
- (二分) Strange fuction--HDOJ
- 增大Linux的socket最大连接数(针对select,要编译内核)
- windows安装clang
- Blockchain的鱼和熊掌系列(18) 之 openssl 问题
- 分享一个excel的导入
- JS常用属性方法大全
- Python性能优化建议
- 判断扫码的时候是支付宝还是微信
- CodeForces 427 D.Match & Catch(后缀数组)