hdu-1115 计算几何 求重心 凸多边形 面积
思想是分割成三角形,然后求三角形的重心。那么多边形重心就是若干个三角形的重心带权求中心,可以用质点质心公式。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstring>
#define LL int
const LL mod=;
const LL N=;
LL dp[N];
LL bit[];
using namespace std; struct Point
{
double x,y;
};//约定传入点的vector包含n+1个点,最后一个点与第一个点等值(模拟闭合圈)
int n;
double Area(vector<Point> va)
{
double rec=;
for(int i=;i<va.size()-;i++)
rec+=va[i].x*va[i+].y-va[i+].x*va[i].y;
rec*=0.5;
return rec;
}
Point GrvCenter(vector<Point> va)
{
Point rec;
rec.x=,rec.y=;
double area=Area(va);//每个三角形在总面积中的权重
for(int i=;i<va.size()-;i++)
rec.x+=(va[i].x+va[i+].x)*(va[i].x*va[i+].y-va[i+].x*va[i].y);
for(int i=;i<va.size()-;i++)
rec.y+=(va[i].y+va[i+].y)*(va[i].x*va[i+].y-va[i+].x*va[i].y);
rec.x/=area*;
rec.y/=area*;
return rec;
}
int main()
{
cin.sync_with_stdio(false);
int t;
int n;
scanf("%d",&t);
while(t--)
{
vector<Point> va;
scanf("%d",&n);
for(int i=;i<n;i++)
{
Point x;
scanf("%lf %lf",&x.x,&x.y);
va.push_back(x);
}
va.push_back(*va.begin());
printf("%.2f %.2f\n",GrvCenter(va).x,GrvCenter(va).y);
}
}
hdu-1115 计算几何 求重心 凸多边形 面积的更多相关文章
- *HDU 1115 计算几何
Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- Hdu-2892 area 计算几何 圆与凸多边形面积交
题面 题意:有一个凸多边形岛屿,然后告诉你从高空(x,y,h)投下炸弹,爆炸半径r,飞机水平速度和重力加速度,问岛屿被炸了多少 题解:算出来岛屿落地位置,再利用圆与凸多边形面积交 #include&l ...
- UVALive 4426 Blast the Enemy! 计算几何求重心
D - Blast the Enemy! Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Subm ...
- HDU 1115(求质量均匀分布的多边形重心 物理)
题意是给一个 n 边形,给出沿逆时针方向分布的各顶点的坐标,求出 n 边形的重心. 求多边形重心的情况大致上有三种: 一.多边形的质量都分布在各顶点上,像是用轻杆连接成的多边形框,各顶点的坐标为Xi, ...
- hdu 1115(计算多边形重心)
题意:已知一多边形没有边相交,质量分布均匀.顺序给出多边形的顶点坐标,求其重心. 分析: 求多边形重心的题目大致有这么几种: 1,质量集中在顶点上.n个顶点坐标为(xi,yi),质量为mi,则重心 X ...
- hdu 1115(多边形重心问题)
Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- O - 覆盖的面积 - hdu 1255(求面积)
分析:求一层的面积覆盖是非常简单的事情,不过多层面积覆盖应该怎么搞???也是比较简单的事情,只需要用两个变量记录就好了,一个记录覆盖一次的,一个记录覆盖两次的,就很容易解决了 ************ ...
- POJ-3348 Cows 计算几何 求凸包 求多边形面积
题目链接:https://cn.vjudge.net/problem/POJ-3348 题意 啊模版题啊 求凸包的面积,除50即可 思路 求凸包的面积,除50即可 提交过程 AC 代码 #includ ...
- HDOJ(1115)多边形重心
Lifting the Stone http://acm.hdu.edu.cn/showproblem.php?pid=1115 题目描述:输入n个顶点(整数),求它们围成的多边形的重心. 算法:以一 ...
随机推荐
- Google Protocol Buffer在vs2010下配置
1.从这里下载protobuf-2.6.1.tar.gz到桌面,并解压,解压后的文件夹为protobuf-2.6.1.(我的桌面为C:\Users\mcl\Desktop) 2 .进入文件夹proto ...
- Django 中如何让外部访问本地的静态资源
简单使用 在Django中打开一个入口,让别人可以访问media文件 在settings中配置 MEDIA_ROOT=os.path.join(BASE_DIR,'media') 在路由中配置 fro ...
- extern 用法,全局变量与头文件(重复定义)
转自 https://www.cnblogs.com/chengmin/archive/2011/09/26/2192008.html 当你要引用一个全局变量的时候,你就要声明,extern int ...
- (zhuan) Notes on Representation Learning
this blog from: https://opendatascience.com/blog/notes-on-representation-learning-1/ Notes on Repr ...
- 给大家讲个故事,感受一下什么叫CF。不知道的请认真听。
我朋友是个温柔.体贴.负责.做事认真和口才流利的好男人 他在大一时喜欢上别系的女同学,像他这样的好人我以为这段恋情是手到擒来 但并没有,女方只把它当工具人,一当就当了四年 身为室友的我每天看著她为女方 ...
- 3、python内置类型(0529)
python的内置对象类型以及支持的运算 python对象的相关术语 python程序中保存的所有数据都是围绕对象这个概念展开的 程序中存储的所有数据都是对象 每个对象都有一个身份.一个类型和一个值 ...
- HDU 3526 Computer Assembling(最小割)
http://acm.hdu.edu.cn/showproblem.php?pid=3526 题意:有个屌丝要配置电脑,现在有n个配件需要购买,有两家公司出售这n个配件,还有m个条件是如果配件x和配件 ...
- Codeforces 781C Underground Lab
题目链接:http://codeforces.com/problemset/problem/781/C 因为有${K}$个机器人,每个又可以走${\left \lceil \frac{2n}{k} \ ...
- git 命令 clone分支的代码
一个项目通常含有很多分支, master分支一般是经过测试,验证没有问题后,代码才会提交到master分支 develop分支,是测试经常拉下来进行测试的分支 直接复制develop分支的git 命令 ...
- CentOS6.X、7.X下Jenkins的安装及使用
一.相关概念 1.1 Jenkins概念: Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenk ...