hdu1115(计算多边形几何重心)
题目链接: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(计算多边形几何重心)的更多相关文章
- hdu1115【多边形求重心模板】
1.质量集中在顶点上.n个顶点坐标为(xi,yi),质量为mi,则重心(∑( xi×mi ) / ∑mi, ∑( yi×mi ) / ∑mi) 2.质量分布均匀.这个题就是这一类型,算法和上面的不同. ...
- POJ1385 计算多边形的重心
point gravity_center(point* p,int n) { double area=0.0; point ZERO; ZERO.x = 0; ZERO.y = ...
- hdu 1115(计算多边形重心)
题意:已知一多边形没有边相交,质量分布均匀.顺序给出多边形的顶点坐标,求其重心. 分析: 求多边形重心的题目大致有这么几种: 1,质量集中在顶点上.n个顶点坐标为(xi,yi),质量为mi,则重心 X ...
- Lifting the Stone(hdu1115)多边形的重心
Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- HDU1115&&POJ1385Lifting the Stone(求多边形的重心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1115# 大意:给你个n,有n个点,然后给你n个点的坐标,求这n个点形成的多边形的重心的坐标. 直接套模 ...
- poj 1115 Lifting the Stone 计算多边形的中心
Lifting the Stone Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- Lifting the Stone(求多边形的重心—)
Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- 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 ...
- 【改革春风吹满地 HDU - 2036 】【计算几何-----利用叉积计算多边形的面积】
利用叉积计算多边形的面积 我们都知道计算三角形的面积时可以用两个邻边对应向量积(叉积)的绝对值的一半表示,那么同样,对于多边形,我们可以以多边形上的一个点为源点,作过该点并且过多边形其他点中的某一个的 ...
随机推荐
- jQuery Validate 表单验证
在做网页表单时时常需要在客户端对表单填写的数据进行验证一番才能提交,我们可以通过自己编写JavasScript代码来验证,但是有时数据量过多时就会有些难度了.基于jQuery的jquery.valid ...
- linux运维人员必会开源运维工具体系
http://oldboy.blog.51cto.com/2561410/775056
- android Home键和返回键
在Android中,当按下Home键,默认情况下stop前台的actiity,即activity设置成onstop,而不是ondestory.如果再次启动该activity不是调用onCreate,而 ...
- 在 Ubuntu 16.04 上安装 LEMP 环境之图文向导
导读 LEMP 是个缩写,代表一组软件包(注解 ① L:Linux OS,E:Nginx 网络服务器,M:MySQL/MariaDB 数据库和 P:PHP 服务端动态编程语言),它被用来搭建动态的网络 ...
- leetcode 142. Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Note ...
- C++ 复制构造函数
C++类的设计中,如果某些函数没有显式定义,C++会自动生成,复制构造函数便是其中之一,其他的还有默认构造函数.赋值操作符.默认析构函数.地址操作符.一个类的复制构造函数的原型一般为: Class_n ...
- spring和hibernate整合时无法自动建表
在使用spring整合hibernate时候代码如下: <property name="dataSource" ref="dataSource" /> ...
- 1.7---将矩阵元素为0的行列清零0(CC150)
答案: import java.util.ArrayList; import java.util.List; public class Solution{ public static void mai ...
- django xadmin 插件(2) 列表视图新增一功能列
以默认的related_link为例(即最后一列). 源码:xadmin.plugins.relate.RelatedMenuPlugin class RelateMenuPlugin(BaseAdm ...
- iOS学习笔记(2)--Xcode6.1创建仅xib文件无storyboard的hello world应用
http://www.mamicode.com/info-detail-514151.html 由于Xcode6之后,默认创建storyboard而非xib文件,而作为初学,了解xib的加载原理很重要 ...