Time Limit: 0.5 second(s) | Memory Limit: 32 MB |
See the picture below.
You are given AB, AC and BC. DE is parallel to BC. You are also given the area ratio between ADE and BDEC. You have to find the value of AD.
Input
Input starts with an integer T (≤ 25), denoting the number of test cases.
Each case begins with four real numbers denoting AB, AC, BC and the ratio of ADE and BDEC (ADE / BDEC). You can safely assume that the given triangle is a valid triangle with positive area.
Output
For each case of input you have to print the case number and AD. Errors less than 10-6 will be ignored.
Sample Input | Output for Sample Input |
4 100 100 100 2 10 12 14 1 7 8 9 10 8.134 9.098 7.123 5.10 | Case 1: 81.6496580 Case 2: 7.07106781 Case 3: 6.6742381247 Case 4: 7.437454786 |
解题思路
了解相似定理,两三角形相似的条件面积比是长度比的平方,由此可以推出公式。
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int t;
int flag=1;
scanf("%d",&t);
while(t--)
{
double a,b,c,k;
double ans,sum;
scanf("%lf%lf%lf%lf",&a,&b,&c,&k);
ans=(1+k)/k;//根据相似性,推算而得
ans=sqrt(ans);
sum=a/ans+1e-8;
printf("Case %d: %lf\n",flag++,sum);
}
return 0;
}