uva 10566 - Crossed Ladders(几何+二分)
2015-08-15 10:50
375 查看
题目链接:uva 10566 - Crossed Ladders
二分答案,几何计算出对应的H,与C比较
二分答案,几何计算出对应的H,与C比较
#include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; const double eps = 1e-9; double X, Y, C; double solve (double a) { double hx = sqrt(X * X - a * a); double hy = sqrt(Y * Y - a * a); return hx * hy / (hx + hy); } double search(double l, double r) { while (r - l > eps) { double mid = (r + l) / 2; if (solve(mid) > C) l = mid; else r = mid; } return l; } int main () { while (scanf("%lf%lf%lf", &X, &Y, &C) == 3) { printf("%.3lf\n", search(0, min(X, Y))); } return 0; }
相关文章推荐
- 简单聊天客户端
- poj 2778 AC自动机+矩阵快速幂
- java 传值 还是 传引用
- 传参操作
- 宏定义 #define与typedef的区别。
- noip1998 多位数连接 (排序,字符串处理)
- Linux 成长之路 1
- lightOJ 1248 - Dice (III) 概率DP
- uva 12301 - An Angular Puzzle(几何)
- mysql timestamp格式
- Oracle逻辑存储结构1—概述
- 分享:高效开发Android App的10个建议
- 哈佛首位女校长福斯特在学生毕业典礼上的演讲--我们为什么焦虑
- android中src和background区别
- MySQL常用技巧
- 欧几里德扩展方程 详解
- HDU 1166 敌兵布阵(线段树)
- Javascript基础(1)基本介绍
- 程序链接
- [盈利指导] App推广干货,排名数据分析优化效果