数学 HDU 2036 改革春风吹满地

原题戳这儿:链接


思路:将多边形切割为多个三角形,进行面积累计求和

算法(三角形万能公式):

数学 HDU 2036 改革春风吹满地_第1张图片
设A(x1,y1),B(x2,y2),C(x3,y3) ,由A-->B-->C-->A 按逆时针方向转。 
设三角形的面积为S,则S=(1/2)*(下面行列式) 
|x1 y1 1| 
|x2 y2 1| 
|x3 y3 1| 
S=(1/2)*(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2) 
即用三角形的三个顶点坐标求其面积的公式为: S=(1/2)*(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2) 


代码

#include   
int main()  
{  
    int x[100],y[100],n,i,x1,y1,x2,y2,x3,y3;  
    double s;  
    while(~scanf("%d",&n)&&n)  
    {  
        for(i=s=0;i



你可能感兴趣的:(数学)