![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算几何
laziercs
这个作者很懒,什么都没留下…
展开
-
求多边形的重心-hdu 1115
//先把所有的坐标按一个方向排序,比如逆时针,这里可以用极坐标排序;//排好序后,以原点为基点,用n边形的n个点中的每相邻的两个点和基点组成一个三角形,这样就构成了n-1个三角形,并求出相应三角形的重心ci和叉积面积ai(这里保留方向性);(这里为什么用原点作为基点,因为用原点作为基点时,求叉积时简单),设A=A1+A2....Ai,最后的n多边形重心C=∑(ci×Ai)/A;//上面的公原创 2012-09-12 10:45:51 · 545 阅读 · 0 评论 -
zoj 1030 (dfs+几何)
//从每一个点开始,向某一个几何方向dfs搜索几何圈,然后判断几何圈里有没有其他的点,再把几何圈去重就是答案,O(n^3).#include#include#include#include#include#includeusing namespace std;struct Point{ int x,y; Point(int a=0,int b=0):x(a),原创 2013-07-12 20:04:15 · 894 阅读 · 0 评论 -
hdu 4667(几何)
解题思路:求出所有可能在外围的点。也就是将两圆两两求外公切线,得到所有的切点;将圆和三角形的三个点依次做切线,也得到切点,再加上所有三角形的三个点。最后对这些点求凸包,对于凸包上的每条边,如果它们在同一个圆上,用相应的圆弧替代。#include#include#include#include#include#include#include#include#inclu原创 2013-08-15 13:15:39 · 1002 阅读 · 2 评论 -
几何代码总结
struct Point{ int x,y; Point(int a=0,int b=0):x(a),y(b){}};Point operator-(Point a,Point b){ return Point(a.x-b.x,a.y-b.y); }Point operator+(Point a,Point b){ return Point(a.x+b.x,a.y+b.y)原创 2013-07-12 20:21:26 · 971 阅读 · 0 评论