题意:
如图 有一个内切圆 告诉你内切圆的半径R, 并且三角形 比例知道 m1 : n1 m2 : n2 m3 : n3,注意 这些只是比例,并不是实际长度,刚开始以为一个大水题,结果样例都不对,错误的认为那是实际长度了!
思路:
需要知道一个内切圆的半径公式:
因此我们设AB = m1 x + n1 x;
可以将三角形三边表示出来!
将三边带入内切圆半径公式即可求出X的值
这样即可求出三角形三个边的实际长度!
在利用三角形面积公式:
即可求出S!
AC代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdlib>
using namespace std;
int main(){
int T;
int kase=0;
scanf("%d",&T);
while(T--){
double r;
double m1,n1,m2,n2,m3,n3;
scanf("%lf",&r);
scanf("%lf %lf",&m1,&n1);
scanf("%lf %lf",&m2,&n2);
scanf("%lf %lf",&m3,&n3);
double k1 = n1+m1;
double k2 = (n1*m2+n2*n1)/m2;
double k3 = (m1*n3+m3*m1)/n3;
double A1 = k1+k2-k3;
double B1 = k1-k2+k3;
double C1 = -k1+k2+k3;
double k4 = k1+k2+k3;
double x = 2*r/sqrt(A1*B1*C1/k4);
double sum = k4*x;
double s = sum*r/2;
printf("%.15lf\n",s);
}
return 0;
}