题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1115

题意:给出一些点,求这些点围成的多边形的重心;

思路:

方法1:直接分别求所有点的x坐标的平均值和y坐标的平均值,即答案;不过这个方法的计算精度不是很高,要求高精度时用另一个方法;

方法2:

用公式:x = (xi*si*+...xn*sn)/(si+...+sn); y = (yi*si*+...yn*sn)/(si+...+sn);

方法2的代码:

 #include <iostream>
#include <stdio.h>
using namespace std; struct gg{
double x, y;
}; double get_area(gg a, gg b, gg c){ //***用行列式计算三角形面积
double area = a.x*b.y + a.y*c.x + b.x*c.y - c.x*b.y - b.x*a.y - a.x*c.y;
return area;
} int main(void){
int t;
scanf("%d", &t);
while(t--){
int n;
scanf("%d", &n);
gg p0, p1, p2;
double sumx=, sumy=, sumarea=;
scanf("%lf%lf", &p0.x, &p0.y);
scanf("%lf%lf", &p1.x, &p1.y);
for(int i=; i<n; i++){
scanf("%lf%lf", &p2.x, &p2.y);
double area = get_area(p0, p1, p2);
sumarea += area;
sumx += (p0.x+p1.x+p2.x)*area;
sumy += (p0.y+p1.y+p2.y)*area;
p1 = p2;
}
// cout << sumx << " " << sumy << " " << sumarea << endl;
printf("%.2lf %.2lf\n", sumx/sumarea/, sumy/sumarea/);
}
return ;
}

hdu1115(计算多边形几何重心)的更多相关文章

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

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

  2. POJ1385 计算多边形的重心

    point gravity_center(point* p,int n) {    double area=0.0;    point ZERO;    ZERO.x = 0;    ZERO.y = ...

  3. hdu 1115(计算多边形重心)

    题意:已知一多边形没有边相交,质量分布均匀.顺序给出多边形的顶点坐标,求其重心. 分析: 求多边形重心的题目大致有这么几种: 1,质量集中在顶点上.n个顶点坐标为(xi,yi),质量为mi,则重心 X ...

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

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

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

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

  6. poj 1115 Lifting the Stone 计算多边形的中心

    Lifting the Stone Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

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

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

  8. poj 1265 Area【计算几何:叉积计算多边形面积+pick定理计算多边形内点数+计算多边形边上点数】

    题目:http://poj.org/problem?id=1265 Sample Input 2 4 1 0 0 1 -1 0 0 -1 7 5 0 1 3 -2 2 -1 0 0 -3 -3 1 0 ...

  9. 【改革春风吹满地 HDU - 2036 】【计算几何-----利用叉积计算多边形的面积】

    利用叉积计算多边形的面积 我们都知道计算三角形的面积时可以用两个邻边对应向量积(叉积)的绝对值的一半表示,那么同样,对于多边形,我们可以以多边形上的一个点为源点,作过该点并且过多边形其他点中的某一个的 ...

随机推荐

  1. Redis学习笔记之ABC

    Redis学习笔记之ABC Redis命令速查 官方帮助文档 中文版本1 中文版本2(反应速度比较慢) 基本操作 字符串操作 set key value get key 哈希 HMSET user:1 ...

  2. DevPress GridControl添加按钮列

    把列的ColumnEdit属性设置为RepositoryItemButtonEdit 把TextEditStyle属性设置为HideTextEditor; 把Buttons的Kind属性设置为Glyp ...

  3. 在Fedora 20 上安装Mysql并初始化root密码

    [root@localhost ~]# yum -y install community-mysql-server #安装数据库 已加载插件:langpacks, refresh-packagekit ...

  4. 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...

  5. BZOJ 4455: [Zjoi2016]小星星

    Sol 容斥原理+树形DP. 这道题用的容斥思想非常妙啊!主要的思路就是让所有点与S集合中的点对应,可以重复对应,并且可以不用对应完全(意思是是S的子集也可以).这样他有未对应完全的,那就减去,从全都 ...

  6. CI基本配置

    <?php defined('BASEPATH') OR exit('No direct script access allowed'); /* |----------------------- ...

  7. NDK学习一: 环境搭建Eclipse篇

    下载NDK 国内的一个镜像站点 下载速度比较快 http://wear.techbrood.com/tools/sdk/ndk/#Installing 网上搭建环境的方案有很多 1. Eclipse ...

  8. C#基础语法实例荟萃

    匿名类 action = new UploadHandler(context, new UploadConfig() { AllowExtensions = Config.GetStringList( ...

  9. iframe操作

    http://www.jb51.net/article/15780.htmiframe自适应高度:经典<iframe src="http://www.lanyunwork.com/&q ...

  10. 【Networkk】一篇文章完全搞清楚 scoket read/write 返回码、阻塞与非阻塞、异常处理 等让你头疼已久的问题

    浅谈TCP/IP网络编程中socket的行为   我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉: 1. TCP/IP协议(如连接的建立和终止.重传和确认.滑动窗 ...