LightOJ 1385 Kingdom Division(幾何学的導出)
1956 ワード
テーマリンク:http://www.lightoj.com/volume_showproblem.php?problem=1385
四部分に分かれた三角形をあげます.a、b、cを知っています.dが存在するかどうかを求めます.
構想:EFをリンクして、XEFをs 1として、AEFをx 2として、テーマによって2つの等式を求めることができます.s 1/A=C/B、(A+s 1+s 2)/(B+C)=s 2/(s 1+C)を簡略化すればいいです.
acコード:
四部分に分かれた三角形をあげます.a、b、cを知っています.dが存在するかどうかを求めます.
構想:EFをリンクして、XEFをs 1として、AEFをx 2として、テーマによって2つの等式を求めることができます.s 1/A=C/B、(A+s 1+s 2)/(B+C)=s 2/(s 1+C)を簡略化すればいいです.
acコード:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#define PI acos(-1)
#define eps 1e-8
using namespace std;
int main()
{
int t,cas=0;
scanf("%d",&t);
while(t--)
{
double A,B,C;
scanf("%lf%lf%lf",&A,&B,&C);
double b=C/B;
double s1=b*A;
if(B-s1<eps)
{
printf("Case %d: -1
",++cas);
continue;
}
double s2=(A*s1+s1*s1+A*C+s1*C)/(B-s1);
printf("Case %d: %.7lf
",++cas,s1+s2);
}
return 0;
}