LightOJ 1062 & Poj 2507 Crossed Ladders

来源:互联网 发布:淘宝单品爆款技巧 编辑:程序博客网 时间:2024/05/23 23:35

题目链接 http://lightoj.com/volume_showproblem.php?problem=1062

                http://poj.org/problem?id=2507

题意:如图,给出x,y,c,求问号处的长度。

思路:找几何相似关系,二分求解。

到现在我都没想通为什么当时我要用20分钟去解一个多元方程。。。。。。

这个题应该是有更好的思路的,望路过的大神指点迷津!

#include <stdio.h>#include <math.h>#define MIN(a,b) ((a)<(b)?(a):(b))#define STD 1e-9int main (){int T;double x,y,c,low,high,mid;scanf("%d",&T);for (int cas=1;cas<=T;cas++){scanf("%lf%lf%lf",&x,&y,&c);low=0;high=MIN(x,y);while (high-low > STD){mid=(high+low)/2;if (((1/sqrt(x*x-mid*mid))+(1/sqrt(y*y-mid*mid))) > (1/c))high=mid;elselow=mid;}printf("Case %d: %.8lf\n",cas,mid);}return 0;}