题目链接 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-9
int 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;
else
low=mid;
}
printf("Case %d: %.8lf\n",cas,mid);
}
return 0;
}