acm_1002_Strange fuction
来源:互联网 发布:胡歌的电视剧 知乎 编辑:程序博客网 时间:2024/06/05 02:22
题目描述:
2<br>100<br>200
-74.4291<br>-178.8534
题目大意:
就是给你一个函数,函数有两个变量,把Y的值给你,让你求x处于(0,100)内函数的最小值。。
想法:
可以把这个函数先求导,得到一个含有Y单值 + 一个含有X的函数体,
1:把输入的Y值和X=100是函数体得到的值比较,如果大,说明函数是递减的,最小值是x处于100时;若否,则->2。。
2:把输入的Y值和X=0是函数体得到的值比较,如果小,说明函数是递增的,最小值是x处于0时;若否,则->3。。
3:当函数体=y时,求出X的值,可用二分查找,带入原函数即可。。
代码:
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
int Y,T;
double min,sum,max,flat;
cin>>T;
for(int i=1;i<=T;i++)
{
cin>>Y;
if((42*pow(100,6)+48*pow(100,5)+21*10000+10*100)<Y)
{
sum=6*pow(100,7)+8*pow(100,6)+7*pow(100,3)+5*10000-100*Y;
cout<<setprecision(4)<<fixed<<sum<<endl;
}
else if(0>Y)
{
sum=0;
cout<<setprecision(4)<<fixed<<sum<<endl;
}
else
{
max=100.0;
min=0.0;
while((max-min)>0.0000001)
{
flat=(max+min)/2;
if((42*pow(flat,6)+48*pow(flat,5)+21*pow(flat,2)+10*flat)<Y)
min=flat;
else max=flat;
if((max-min)<0.00001)
{
sum=6*pow(flat,7)+8*pow(flat,6)+7*pow(flat,3)+5*pow(flat,2)-flat*Y;
cout<<setprecision(4)<<fixed<<sum<<endl;
break;
}
}
}
}
return 0;
}
- acm_1002_Strange fuction
- socket fuction
- strstr fuction
- Strange fuction
- hdu2899Strange fuction
- Strange fuction
- hdu2899_Strange fuction
- Strange fuction
- Strange fuction
- HDU_2899_Strange fuction
- matlab_length fuction
- Strange Fuction
- Strange fuction
- Strange fuction
- Strange fuction
- 常用fuction使用说明
- ABAP常用fuction
- ABAP常用fuction
- 获取html 中的所有图片 正则表达式
- 动态调试APK-超实用
- leetcode - ugly number, ugly number2, super ugly number
- java基础算法之递推
- 你不可不知的Eclipse快捷键
- acm_1002_Strange fuction
- POJ3691.DNA repair (Trie图 && DP)
- C++基础知识
- 自定义控件实现圆形头像
- python调用cmd命令的几种方式和区别
- 程序员常用的网站和博客
- 【机器学习】贝叶斯线性回归模型
- JavaScript 浏览器对象
- jquery file change 一次问题的解决