hdu1115求凸包重心
来源:互联网 发布:la域名查询 编辑:程序博客网 时间:2024/05/17 03:42
题目链接:点击打开链接
用模板就好了
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int maxn=1e6+10;struct Point//点 向量{ double x,y; Point(double x=0,double y=0):x(x),y(y) {}};typedef Point Vector;//向量使用点作为表示方法 结构相同 为了代码清晰const double eps = 1e-8;int dcmp(double x) //三态函数 处理与double零有关的精度问题{ if(fabs(x) < eps) return 0; return x<0 ? -1 : 1;}//向量运算Vector operator + (Vector A, Vector B){ return Vector(A.x+B.x, A.y+B.y);}Vector operator - (Vector A, Vector B){ return Vector(A.x-B.x, A.y-B.y);}Vector operator * (Vector A, double p){ return Vector(A.x*p, A.y*p);}Vector operator / (Vector A, double p){ return Vector(A.x/p, A.y/p);}bool operator == (const Vector& A, const Vector& B){ return dcmp(A.x-B.x)==0 && dcmp(A.y-B.y)==0;}bool operator < (const Point&a,const Point &b){ return a.x<b.x||(a.x==b.x&&a.y<b.y);}double Dot(Vector A, Vector B) //向量点积{ return A.x * B.x + A.y * B.y;}double Cross(Vector A, Vector B) //向量叉积{ return A.x * B.y - A.y * B.x;}double Area(Point a,Point b,Point c){ return (b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y);}Point tubaozhongxin(Point ma[],int n){ int i; Point p=ma[0]; Point a=ma[1]; double hx=0.0,hy=0.0,sum_area=0.0; for(i=2;i<n;i++) { Point b=ma[i]; double sa=Area(p,a,b); hx+=(p.x+a.x+b.x)*sa; hy+=(p.y+a.y+b.y)*sa; sum_area+=sa; a=b; } Point t; t.x=hx/sum_area/3; t.y=hy/sum_area/3; return t;}int main(){ int T,n; Point p[maxn]; scanf("%d",&T); while(T--){ scanf("%d",&n); for(int i=0;i<n;i++) scanf("%lf %lf",&p[i].x,&p[i].y); Point temp=tubaozhongxin(p,n); printf("%.2lf %.2lf\n",temp.x,temp.y); } return 0;}
阅读全文
0 0
- hdu1115求凸包重心
- HDU1115 --多边形重心求解
- hdu1115 求多边形重心
- HDU1115 Gravity(求重心)
- hdu1115(多边形重心算法)
- hdu1115 Lifting the Stone (多边形重心)
- hdu1115(求多边形重心模板)
- Lifting the Stone(hdu1115)多边形的重心
- hdu1115 Lifting the Stone 多边形重心
- hdu1115
- hdu1115 Lifting the Stone (求多边形重心)
- HDU1115 Lifting the Stone (求多边形的重心)
- hdu1115 Lifting the Stone(几何,求多边形重心模板题)
- hdu1115 Lifting the Stone(几何,求多边形重心模板题)
- NYOJ3—多边形重心问题(计算几何)&&hdu1115 Lifting the Stone
- HDU1115-凸包
- HDU1115 多边形面积公式
- HDU1115 Lifting the Stone
- STM32--DMA详解
- Selenium之常见元素处理系列一--单选框(radio)
- Codeforces Round #430 (Div. 2)
- 51Nod-1380-夹克老爷的逢三抽一
- java面试题(剑指offer):之字形打印二叉树
- hdu1115求凸包重心
- 鼠标点击中的时候实现拖拽动作
- javaScriptCore 笔记
- 选取部分求和的数字中的最小数
- vue+webpack的快速使用指南
- eclipse封装jar包的简单过程
- Python发送QQ邮件
- Java实现二叉查找树
- error C2085: “index(随便一个形参)”: 不在形参表中