lightoj 1062 Crossed Ladders
来源:互联网 发布:卖房用什么软件 编辑:程序博客网 时间:2024/06/07 20:17
1062 - Crossed Ladders
A narrow street is lined with tall buildings. An xfoot long ladder is rested at the base of the building on the right side of thestreet and leans on the building on the left side. Ay foot long ladderis rested at the base of the building on the left side of the street and leanson the building on the right side. The point where the two ladders cross isexactlyc feet from the ground. How wide is the street?
Input
Input starts with an integer T (≤ 10),denoting the number of test cases.
Each test case contains three positive floating pointnumbers giving the values ofx,y, andc.
Output
For each case, output the case number and the width of thestreet in feet. Errors less than10-6 will be ignored.
Sample Input
Output for Sample Input
4
30 40 10
12.619429 8.163332 3
10 10 3
10 10 1
Case 1: 26.0328775442
Case 2: 6.99999923
Case 3: 8
Case 4: 9.797958971
设交点与左边的墙的距离是a,与右边墙的距离是b,两墙之间的距离是w,则a + b = w;
根据相似,有:
1 + 2 得
----------------------->
单调递减
而0<w<min(x,y);二分可求w
Code:
#include <set>#include <map>#include <list>#include <cmath>#include <ctime>#include <deque>#include <queue>#include <stack>#include <cctype>#include <cstdio>#include <string>#include <vector>#include <cassert>#include <cstdlib>#include <cstring>#include <sstream>#include <iostream>#include <algorithm>#define pi acos(-1.0)#define maxn (1000 + 50)#define mod 1000000007#define Lowbit(x) (x & (-x))using namespace std;typedef long long int LLI;double x,y,c;double fun(double w) { double sqx = sqrt(x * x - w * w); double sqy = sqrt(y * y - w * w); return sqx * sqy / (sqx + sqy);}int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout); int t; scanf("%d",&t); for(int Case = 1; Case <= t; Case ++) { scanf("%lf%lf%lf",&x,&y,&c); double l = 0,r = min(x,y),mid = (l + r) / 2; while(fabs(fun(mid) - c) > 0.0000000001) { if(fun(mid) > c) l = mid; else if(fun(mid) < c) r = mid; else break; mid = (l + r) / 2; } printf("Case %d: %.9lf\n",Case,mid); } return 0;}
- lightoj 1062 Crossed Ladders
- LightOJ 1062 Crossed Ladders (二分)
- lightoj 1062 Crossed Ladders | 二分
- Lightoj 1062 - Crossed Ladders【二分】
- LightOJ 1062 & Poj 2507 Crossed Ladders
- Lightoj 1062 Crossed Ladders (二分)
- LightOJ 1062Crossed Ladders(二分)
- LightOJ 1062 Crossed Ladders(大楼距离,二分)
- 【Light】[1062]Crossed Ladders
- Crossed ladders
- Crossed Ladders
- Crossed Ladders
- Crossed Ladders
- FZU 1148 Crossed ladders
- HOJ2015//Crossed ladders
- Hoj 2105 Crossed ladders
- Uva - 10566 - Crossed Ladders
- uva 10566 - Crossed Ladders
- 书写是为了更好的思考
- JDBC(一)
- 程序员必知的8大排序
- Android 支付宝接入流程
- Android shape方法绘制图形的方法和属性解析
- lightoj 1062 Crossed Ladders
- memset()函数用法简介
- Spring整合activiti配置processEngine
- OpenCV学习笔记(一)(二)(三)(四)(五)
- extjs正则表达式验证
- hdu1176免费馅饼·(类数塔问题)
- 调用 RelativeLayout measure()报 java.lang.NullPointerException
- poj2002 Squares--哈希表
- 随笔