题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2432
题目大意:任意△ABC中F、D、E分别为三边的三等分点中点,将其分别与对应的顶点相连,得到一个新的△RPQ。
现在给出△ABC的坐标,求△RPQ的面积
解题思路:用叉积求出△ABC的面积三角形 ABC 的面积= |AxBy - AyBx + BxCy - ByCx + CxAy - CyAx| / 2
叉积: Ax Ay 1
Bx By 1 = AxBy - AyBx + BxCy - ByCx + CxAy - CyAx
Cx Cy 1
可以证明:S△BPQ :S△ABC = 1 : 7
1 #include<stdio.h> 2 int main() 3 { 4 int n; 5 double Ax,Ay,Bx,By,Cx,Cy; 6 double are; 7 while(scanf("%d",&n)!=EOF) 8 { 9 while(n--) 10 { 11 scanf("%lf%lf%lf%lf%lf%lf",&Ax,&Ay,&Bx,&By,&Cx,&Cy); 12 are=(Ax*By+Bx*Cy+Cx*Ay-Ay*Bx-By*Cx-Cy*Ax)/(2*7); 13 are>=0?are:-are; 14 printf("%.0lf ",are); 15 } 16 } 17 return 0; 18 }