hdu 2036 计算多边形面积

来源:互联网 发布:淘宝网页打不开 编辑:程序博客网 时间:2024/05/19 18:14

叉积 有向面积,不解释了。


#include<cstring>#include<cstdio>#include<iostream>using namespace std;struct point{double x,y;}p[1000005];int main(){int t;scanf("%d",&t);while(t--){int n,i;scanf("%d",&n);for(i=0;i<n;i++) scanf("%lf %lf",&p[i].x,&p[i].y);p[n].x=p[0].x;p[n].y=p[0].y;double ansarea=0,ansx=0,ansy=0;for(i=0;i<n;i++){double temparea;temparea=0.5*(p[i].x*p[i+1].y-p[i].y*p[i+1].x);double tempx=((p[i].x+p[i+1].x+0)*1.0)/3;double tempy=((p[i].y+p[i+1].y+0)*1.0)/3;ansx+=tempx*temparea;ansy+=tempy*temparea;ansarea+=temparea;}printf("%.2lf %.2lf\n",ansx/ansarea,ansy/ansarea);}}


0 0
原创粉丝点击