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. PHP mysqli_options() 函数

    定义和用法 mysqli_options() 函数设置额外的连接选项,用于影响连接行为. mysqli_options() 函数可以被调用若干次来设置若干个选项. <?php $con=mysq ...

  2. 【poj1733】Parity game--边带权并查集

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15776   Accepted: 5964 Description Now ...

  3. import torch错误解决

    import torch出现 ”from torch._C import * ImportError: DLL load failed: 找不到指定的模块“错误这里torch=1.0.1,torchv ...

  4. Linux版本内核及安装后的简单操作命令介绍

    一.Linux的版本与内核 1.Linux发行版 Linux发行版= Linux内核+应用程序 Redhat,CentOS,Ubuntu,Suse,红旗,Mint,Fedora CentOS:社区版操 ...

  5. SpringMVC 请求映射注解

    @GetMapping: 处理get请求,传统的RequestMapping来编写应该是@RequestMapping(value = “/get/{id}”, method = RequestMet ...

  6. 通过Maven更换环境配置文件

    大致思路:配置文件有三套:main/resources.devmain/resources.prodmain/resources.test公共部分放到main/resource下使用mvn clean ...

  7. LeetCode 279. 完全平方数(Perfect Squares)

    题目描述 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少. 示例 1: 输入: n = 12 输出: 3 解释 ...

  8. ubuntu 14.04 升级到18.04

    http://www.360doc.com/content/18/0929/09/35082563_790606785.shtml

  9. useMemo、useCallback简单理解

    1.useMemo.useCallback都是使参数(函数)不会因为其他不想关的参数变化而重新渲染. (1)useMemo const memoDom = useMemo(() => { ret ...

  10. [Ubuntu]18安装百度网盘

     1.下载客户端 下载地址: 选择linux版本,我选择的是deb格式,下载就可以了. 2.安装 进入下载目录,点击右键,选择在终端打开. 之后输入 以下代码愉快的安装就好了 注意:dpkg后面跟的文 ...