http://acm.hdu.edu.cn/showproblem.php?pid=1115

引用博客:https://blog.csdn.net/ysc504/article/details/8812339

 //①质量集中在顶点上
// n个顶点坐标为(xi,yi),质量为mi,则重心
//  X = ∑( xi×mi ) / ∑mi
//  Y = ∑( yi×mi ) / ∑mi
//  特殊地,若每个点的质量相同,则
//  X = ∑xi / n
//  Y = ∑yi / n
//②质量分布均匀
//  特殊地,质量均匀的三角形重心:
//  X = ( x0 + x1 + x2 ) / 3
//  Y = ( y0 + y1 + y2 ) / 3
//③三角形面积公式:S = ( (x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1) ) / 2 ;
//因此做题步骤:1、将多边形分割成n-2个三角形,根据③公式求每个三角形面积。
// 2、根据②求每个三角形重心。
// 3、根据①求得多边形重心。
#include <stdio.h>
struct Point
{
double x, y;
};
double area(Point p1, Point p2, Point p3)
{
return ((p2.x - p1.x) * (p3.y - p1.y) - (p3.x - p1.x) * (p2.y - p1.y)) / ;
}
int main()
{
int t, n, i;
Point p1, p2, p3;
double gx, gy, sumarea, temp;
scanf("%d", &t);
while (t--)
{
scanf("%d", &n);
gx = gy = sumarea = ;
scanf("%lf%lf%lf%lf", &p1.x, &p1.y, &p2.x, &p2.y);
for(i = ; i < n; i++)
{
scanf("%lf%lf", &p3.x, &p3.y);
temp = area(p1, p2, p3);
gx += (p1.x + p2.x + p3.x) * temp;
gy += (p1.y + p2.y + p3.y) * temp;
sumarea += temp;
p2 = p3;
}
gx = gx / sumarea / ;
gy = gy / sumarea / ;
printf("%.2lf %.2lf\n", gx, gy);
}
return ;
}

多边形求重心 HDU1115的更多相关文章

  1. hdu1115【多边形求重心模板】

    1.质量集中在顶点上.n个顶点坐标为(xi,yi),质量为mi,则重心(∑( xi×mi ) / ∑mi, ∑( yi×mi ) / ∑mi) 2.质量分布均匀.这个题就是这一类型,算法和上面的不同. ...

  2. Lifting the Stone 计算几何 多边形求重心

    Problem Description There are many secret openings in the floor which are covered by a big heavy sto ...

  3. HDU1115&&POJ1385Lifting the Stone(求多边形的重心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1115# 大意:给你个n,有n个点,然后给你n个点的坐标,求这n个点形成的多边形的重心的坐标. 直接套模 ...

  4. hdu1115(计算多边形几何重心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1115 题意:给出一些点,求这些点围成的多边形的重心: 思路: 方法1:直接分别求所有点的x坐标的平均值 ...

  5. Lifting the Stone(求多边形的重心—)

    Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...

  6. Lifting the Stone(hdu1115)多边形的重心

    Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...

  7. POJ 1385 Lifting the Stone (多边形的重心)

    Lifting the Stone 题目链接: http://acm.hust.edu.cn/vjudge/contest/130510#problem/G Description There are ...

  8. [NetTopologySuite](2)任意多边形求交

    任意多边形求交: private void btnPolygon_Click(object sender, EventArgs e) { , , , , , , , , , , , , , }; , ...

  9. C#多边形求角——实例说

    前段时间有写过一个计算多边形角度的代码,这里给它整理整理,留给自己也送给萌新. 看左下图,这是一个多环的多边形,一个外环(内部为多边形内部区域),一个内环(外部为多边形内部区域),同时多边形中任意一个 ...

随机推荐

  1. 【转】css样式的书写顺序及原理——很重要!

    记得刚开始学习前端的时候,每次写css样式都是用到什么就在样式表后添加什么,完全没有考虑到样式属性的书写顺序对网页加载代码的影响.后来逐渐才知道正确的样式顺序不仅易于查看,并且也属于css样式优化的一 ...

  2. Codeforces Round #346 (Div. 2) B题

    B. Qualifying Contest Very soon Berland will hold a School Team Programming Olympiad. From each of t ...

  3. laravel Passport - Dingo/Api v2.0+Passport 实现 api 认证

    第一部分: 安装passport 使⽤ Composer 依赖包管理器安装 Passport : composer require laravel/passport 接下来,将 Passport 的服 ...

  4. chown 与 chgrp 修改权限用户

    # 改变权限 chmod 777 filepath # 改变所有者 chown test filepath  # 改变所属组 chgrp user filepath chown='change own ...

  5. codeforces723E

    One-Way Reform CodeForces - 723E There are n cities and m two-way roads in Berland, each road connec ...

  6. 两个字说清楚编程语言实质-Python基础前传(3)

    大家都知道Python对于数据分析而言,意义重大.但对于运用Python来做数据分析的我们来说,学习一门编程语言,却有不小的难度:首先大部分伙伴不是计算机相关专业的科班出身,其次我们基本上也都没有程序 ...

  7. 在ABP core中使用RabbitMq

    距上一篇博客的更新一集很久了,主要是最近做的事情比较杂,中间也有一个难点,就是在ABP中加入APP扫码登录,本来想些的,但是觉得这个写出来会不会让我们的系统被破解-_-||,所以想了想,就没有写. 这 ...

  8. INNER JOIN连接两个表、三个表、五个表的SQL语句

    1.连接两个数据表的用法: FROM Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort 语法格式可以概括为 ...

  9. 预处理、const、static与sizeof-C++中const有什么作用(至少说出3个)

    1:作用如下: (1)const用于定义常量:const定义的常量编译器可以对其进行数据静态类型安全检查. (2)const修饰函数形式的参数:当输入参数为用户自定义类型和抽象数据类型时,应该将“值传 ...

  10. python中list不能做索引

    先看python中内置的list不能作为字典的key. 可将list或者ndarray转化为tuple再做索引. list不能进行hash: import numpy as np a1 = np.ar ...