Lifting the Stone
我们需要把一块石头平稳的从地板上拿起来。石头的底面是多边形且各个部分的高度都一样,我们需要找出石头的重心。
input
测试案例 T;
每组第一行给出N,表示定点数。
接下来N行,每行连个数,表示坐标。定点按顺时针或逆时针给出。
output
重心坐标。两个数中间一个空格,每个数保留两位小数。
思路
把多变形分成N-2个三角形,求出重心,重心的质量。(其实是质心)
根据 x=Σ(xi*mi)/Σmi,有因为mi 正比于体积 正比于 面积。
所以利用叉乘求面积。
#include"iostream"
#include"cstdio"
#include"cstring"
#include"algorithm"
using namespace std;
struct Point
{
double x,y;
};
double Triangle(Point p0,Point p1,Point p2)
{
double s;
s=p0.x*p1.y+p1.x*p2.y+p2.x*p0.y-p1.x*p0.y-p2.x*p1.y-p0.x*p2.y;
//因为有规律,可以记一下。正:x 0->2,y比x大一,负:x 1->2->0,y比x小一。
return s;
}
int main()
{
int i,j;
int T,N;
double x1,y1;
Point p0,p1,p2;
double x,y;
double area,area0;
scanf("%d",&T);
while(T--)
{
scanf("%d",&N);
scanf("%lf%lf",&p0.x,&p0.y);
scanf("%lf%lf",&p1.x,&p1.y);
x=0,y=0;
area=0;
for(i=2;i<N;i++)
{
scanf("%lf%lf",&p2.x,&p2.y);
x1=p0.x+p1.x+p2.x;
y1=p0.y+p1.y+p2.y;
area0=Triangle(p0,p1,p2);
area+=area0;
x+=x1*area0;
y+=y1*area0;
p1=p2;
}
printf("%.2lf %.2lf\n",x/area/3,y/area/3);
}
return 0;
}
Lifting the Stone的更多相关文章
- poj 1115 Lifting the Stone 计算多边形的中心
Lifting the Stone Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- Lifting the Stone(hdoj1115)
Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- (hdu step 7.1.3)Lifting the Stone(求凸多边形的重心)
题目: Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- Lifting the Stone(求多边形的重心—)
Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- hdu 1115 Lifting the Stone 多边形的重心
Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- Lifting the Stone(hdu1115)多边形的重心
Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- hdu 1115:Lifting the Stone(计算几何,求多边形重心。 过年好!)
Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- hdu 1115 Lifting the Stone (数学几何)
Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- Lifting the Stone(多边形重心)
Lifting the Stone Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- hdu1115 Lifting the Stone(几何,求多边形重心模板题)
转载请注明出处:http://blog.csdn.net/u012860063 题目链接:pid=1115">http://acm.hdu.edu.cn/showproblem.php ...
随机推荐
- 关于LyX的一些小问题
LyX转HTML(MS WORD)的脚本elyxer的更新: 首先从官网下载最新版的软件包.解压后,在命令行下python install.py执行安装(直接双击install.py应该也可以),py ...
- 【Spark学习】Apache Spark监控与测量
Spark版本:1.1.1 本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接: http://www.cnblogs.com/zhangningbo/p/4137952.html
- hadoop HDFS 写入吞吐量
最近一个项目 在大把大把的使用hadoop-HDFS,关于HDFS 的优势网上都快说烂了,这里不再说了,免得被.. 呵呵 废话少说,开整 1.场景描述: 服务器A 监听 服务器B分发任务socket. ...
- iOS 8 Xcode6 设置Launch Image 启动图片<转>
Step1 1.点击Image.xcassets 进入图片管理,然后右击,弹出"New Launch Image" 2.如图,右侧的勾选可以让你选择是否要对ipad,横屏,竖屏,以 ...
- work8
使用裸指针: #include <iostream>#include <memory>#include <stdio.h>#include <cstring& ...
- shell下解码url
http://aaronw.me/static/779.html 封装了一下,有需要的拿走 function url_decode() { local url=$ echo $url | awk 'B ...
- snprintf 返回值
在平时写代码的过程中,我一个推荐带有n系列的字符串函数,如 strcat ->strncat sprintf->snprintf 我们有类似的一个函数 void dump_kid(std: ...
- codeforces Ebony and Ivory(水题)
A. Ebony and Ivory time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- swfupload用法总结
<script src="${base}/thirdparty/swfupload/swfupload.js" type="text/javascript" ...
- 在 CentOS 上安装和配置 OpenNebula
转自:http://www.aikaiyuan.com/4889.html 我们提到的云计算一般有三种类型:软件即服务(Software as a Service, SaaS),平台即服务(Platf ...