Solve It - UVa 10341 二分
来源:互联网 发布:mac远程桌面快捷键 编辑:程序博客网 时间:2024/05/24 01:41
Solve It
Input: standard input
Output: standard output
Time Limit: 1 second
Memory Limit: 32 MB
Solve the equation:
p*e-x + q*sin(x) + r*cos(x) + s*tan(x) + t*x2 + u = 0
where 0 <= x <= 1.
Input
Input consists of multiple test cases and terminated by an EOF. Each test case consists of 6 integers in a single line: p, q, r, s, t and u(where 0 <= p,r <= 20 and -20 <= q,s,t <= 0). There will be maximum 2100 lines in the input file.
Output
For each set of input, there should be a line containing the value of x, correct upto 4 decimal places, or the string "No solution", whichever is applicable.
Sample Input
0 0 0 0 -2 1
1 0 0 0 -1 2
1 -1 1 -1 -1 1
Sample Output
0.7071
No solution
0.7554
题意:求上式中0的解x。
思路:二分求解。有一点我很奇怪的是,当eps=1e-6时WA,至少要1e-7,但是答案只需要输出前4位,这点我很无语,求解释。
AC代码如下:
#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;double p,q,r,s,t,u,eps=1e-7;double solve(double x){ return p*exp(-x)+q*sin(x)+r*cos(x)+s*tan(x)+t*x*x+u;}int main(){ int n,i,j,k; double L,R,mi; while(~scanf("%lf%lf%lf%lf%lf%lf",&p,&q,&r,&s,&t,&u)) { if(solve(0)*solve(1)>0) { printf("No solution\n"); continue; } L=0;R=1; while(R-L>eps) { mi=(L+R)/2; if(solve(mi)*solve(L)>0) L=mi; else R=mi; } printf("%.4f\n",L); }}
0 0
- UVA 10341 Solve It 二分
- Solve It - UVa 10341 二分
- uva 10341 - Solve It(二分)
- UVA 10341 Solve It (二分)
- uva 10341-Solve It 二分求值
- Uva - 10341 - Solve It(二分)
- Uva - 10341 - Solve It (二分)
- UVA 10341 - Solve It(二分)
- uva 10341 Solve It(二分搜索)
- UVA 10341 Solve It(二分)
- UVA - 10341 - Solve It (二分求解)
- UVa 10341-Solve It
- UVa 10341 - Solve It
- uva 10341 - Solve It
- uva 10341 - Solve It
- UVA - 10341 Solve It
- UVa 10341 - Solve It
- UVA 10341 - Solve It
- linux学习之shell脚本 ------- shell函数
- Unity3D游戏开发之多线程及使用多线程
- Centeos安装配置nginx
- 动作识别之STIP(Space-Time Interest Point)(五)
- Majority Element
- Solve It - UVa 10341 二分
- three.js 源码注释(九十一)extras/core/Curve.js
- QT QTableWidget 用法总结
- 专题总结:数据结构总结【转】
- 字符串-06. IP地址转换(20)
- Qt入门-表格类QTableWidget
- Linux驱动开发--linux下的DMA编程
- 错误隐藏学习手记(二)
- Hello World