题解 UVA11437 【Triangle Fun】
OIer991215 · · 题解
好像是很麻烦的数学题,也许能用几何知识证明出来S与大三角形面积的比值吧。
既然是OI题目,那我们可以考虑根据输入的坐标,题目描述的D、E、F三点从而确立三条一次函数直线。那么要求的面积的三角形的三点坐标就都求出来了。(用海伦公式)
好像还是太麻烦了。
那就打表找规律吧,既然已知大三角形三点,又通过大眼观察法看出来要求面积的三角形与大三角形长得很相似。那么可以猜测面积与大三角形有关系。根据样例进行计算,发现大三角形面积是要求三角形面积的7倍。于是这个题就做完了。。
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
double x1,x2,x3,y1,y2,y3;
cin>>x1>>y1>>x2>>y2>>x3>>y3;
double e1=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
double e2=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
double e3=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
double p=(e1+e2+e3)/2;
printf("%.0lf\n",sqrt(p*(p-e1)*(p-e2)*(p-e3))/7);
}
return 0;
}