UVa 10566 Crossed Ladders 平面几何结论,二分答案
2014-04-11 00:37
525 查看
题目地址:pdf版本
首先有一个平面几何结论,那就是在如下图中
![](http://img.blog.csdn.net/20140411003513000?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamluZ3FpODE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
始终有1/a+1/b=1/c ; 用相似三角形的知识很容易证明。
然后设?=t 。 那么a=sqrt(x*x-t*t), b=sqrt(y*y-t*t);
方程列出来了。
我们不需要直接解方程,把左边看做是t的函数,它单增的,我们可以二分答案。
代码:
首先有一个平面几何结论,那就是在如下图中
始终有1/a+1/b=1/c ; 用相似三角形的知识很容易证明。
然后设?=t 。 那么a=sqrt(x*x-t*t), b=sqrt(y*y-t*t);
方程列出来了。
我们不需要直接解方程,把左边看做是t的函数,它单增的,我们可以二分答案。
代码:
#include<iostream> #include<cmath> #include<algorithm> #include<cstdio> using namespace std; int main() { double x,y,c; while(cin>>x>>y>>c) { double l=0,r=min(x,y); double mid=l+(r-l)/2; while(r-l>1e-5) { mid=l+(r-l)/2; if(1/sqrt(x*x-mid*mid)+1/sqrt(y*y-mid*mid)>1/c) r=mid; else l=mid; } printf("%.3lf\n",mid); } }
相关文章推荐
- Crossed Ladders - UVa 10566 二分几何
- uva 10566 - Crossed Ladders(几何+二分)
- UVA 10566 Crossed Ladders (几何题,二分)
- uva 10566 Crossed ladders(二分 + 几何)
- UVA 10566 Crossed Ladders (几何+二分)
- UVA 10566 Crossed Ladders (几何题)
- 【UVa】10566 - Crossed Ladders(二分 & 数学)
- UVa 10566 - Crossed Ladders 【二分】
- UVA 10566 && POJ 2507 Crossed Ladders (几何)
- Uva - 10566 - Crossed Ladders
- UVA - 10566 Crossed Ladders
- UVA 10566 Crossed Ladders
- Crossed Ladders - UVa 10566 几何+二分
- poj-2507-Crossed ladders【二分】【计算几何】
- POJ:2507 Crossed ladders(二分+几何数学)
- uva 10566 - Crossed Ladders
- POJ2507 Crossed ladders(几何推公式+二分)
- UVA_10566_CrossedLadders
- Crossed ladders---poj2507(二分+简单几何)
- poj 2507Crossed ladders 计算几何,二分