多边形重心问题
来源:互联网 发布:dijkstra算法步骤s=, 编辑:程序博客网 时间:2024/05/23 23:13
http://acm.nyist.net/JudgeOnline/problem.php?pid=3
多边形重心问题
时间限制:3000 ms | 内存限制:65535 KB
难度:5
- 描述
- 在某个多边形上,取n个点,这n个点顺序给出,按照给出顺序将相邻的点用直线连接, (第一个和最后一个连接),所有线段不和其他线段相交,但是可以重合,可得到一个多边形或一条线段或一个多边形和一个线段的连接后的图形;
如果是一条线段,我们定义面积为0,重心坐标为(0,0).现在求给出的点集组成的图形的面积和重心横纵坐标的和;- 输入
- 第一行有一个整数0<n<11,表示有n组数据;
每组数据第一行有一个整数m<10000,表示有这个多边形有m个顶点; - 输出
- 输出每个多边形的面积、重心横纵坐标的和,小数点后保留三位;
- 样例输入
330 10 20 331 10 00 141 10 00 0.50 1
- 样例输出
0.000 0.0000.500 1.0000.500 1.000
#include <cstdio>#include <algorithm>#include <cmath>using namespace std;struct point{ double x,y; point(){} point(double a,double b):x(a),y(b){} friend point operator+(const point &a,const point &b) { return point(a.x+b.x,a.y+b.y); } friend point operator*(const point &a,const double &b){ return point(b*a.x,b*a.y); } friend point operator/(const point &a,const double &b){ return point(a.x/b,a.y/b); }}a[10010];const double eps=1e-8;int cmp(double x){ if(fabs(x)<eps)return 0; if(x>0)return 1; return -1;}double det(point a,point b){ return a.x*b.y-b.x*a.y;}double area(int n){ double sum=0; a[n]=a[0]; for(int i=0;i<n;i++)sum+=det(a[i+1],a[i]); return fabs(sum/2);}point MassCenter(int n){ point ans=point(0,0); if(cmp(area(n))==0)return ans; a[n]=a[0]; for(int i=0;i<n;i++) ans=ans+(a[i]+a[i+1])*det(a[i+1],a[i]); return ans/area(n)/6.;}int main(){ int n,m; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&m); for(int j=0;j<m;j++) scanf("%lf%lf",&a[j].x,&a[j].y); point ans=MassCenter(m); printf("%.3lf %.3lf\n",area(m),ans.y+ans.x); } return 0;}
1 0
- 多边形重心问题
- acm-多边形重心问题
- 多边形重心问题
- 多边形重心问题
- 多边形重心问题
- 多边形重心问题
- 多边形重心问题
- 多边形重心问题
- 3 多边形重心问题
- NYOJ多边形重心问题
- NYOJ - 多边形重心问题
- 多边形重心问题
- 多边形重心问题
- 多边形重心问题
- 多边形重心问题 java
- nyoj3 多边形重心问题 【多边形面积+多边形重心】
- nyoj 3 多边形重心问题
- 南阳理工:多边形重心问题
- 阴阳
- iOS——函数
- javaweb中静态文件的常用处理方法汇总
- .NET学习(八)UpdatePanel组件的使用
- 【codechef】s=abs(这部分数-剩下的数),求所有选取方式的s之和
- 多边形重心问题
- 转:iOS--多线程开发,其实很简单
- iOS Swift语言概述 —— HERO博客
- 《Android群英传》读书笔记(12)第十二章:Android 5.X新特性详解
- spring3.1xml配置和注解两种方式总结
- android客户端加载网络大图片如何避免内存溢出的两种方法
- 开篇
- Polymorphic Inline Caches explained
- 哥哥要开始刷Leecode了