【杭电】[2199]Can you solve this equation?
2016-07-26 17:01
211 查看
二分搜索答案
与Y进行比较可知道mid与res的大小关系
注意x的取值为0~100
因为函数f(m)=8*m4+7*m3+2*m2+3*m+6
在0~100上单调递增
所以如果
Y<f(0)||Y>f(100)是没有结果的
#include<stdio.h> double n; double f(double m) { return 8*m*m*m*m+7*m*m*m+2*m*m+3*m+6; } bool judge(double m) { if(f(m)>n) return true; else return false; } int main() { int T; scanf("%d",&T); while(T--) { scanf("%lf",&n); if(n<f(0.0)||n>f(100.0)) { printf("No solution!\n"); continue; } double r=10000000000,l=0,res; while(r-l>1e-6) { double mid=(r+l)/2; if(judge(mid)) { res=mid; r=mid; } else l=mid; } printf("%.4lf\n",res); } return 0; }
题目地址:【杭电】[2199]Can you solve this equation?
相关文章推荐
- 高精度加法——杭电1002
- Hdu2066(一个人的旅行)
- 杭电1870 愚人节的礼物
- 关于杭电1405 The Last Practice 的问题
- hdu-1103 模拟题。
- hdu-1022 栈的应用。
- hdu-1247 简单map的应用。(字典树)
- hdu-1251 字典树公共前缀。
- hdu-1075 map映射表的应用。
- 杭电ACM Steps (1)
- hdu 1005 -- Number Sequence
- hdu 1007 -- Quoit Design
- 杭电1004
- 杭电1005
- 杭电1008
- c++编写藏手帕问题
- 杭电oj-1003
- 杭电oj-1004
- 杭电oj-1005
- 并查集示例1