
ACM-计算几何
文章平均质量分 54
yew1eb
https://github.com/yew1eb
展开
-
hdu2036 (计算多边形的面积)
Input输入数据包含多个测试实例,每个测试实例占一行,每行的开始是一个整数n(3输入数据中所有的整数都在32位整数范围内,n=0表示数据的结束,不做处理。 Output对于每个测试实例,请输出对应的多边形面积,结果精确到小数点后一位小数。每个实例的输出占一行。 Sample Input3 0 0 1 0 0 14原创 2013-09-02 16:15:17 · 2130 阅读 · 0 评论 -
旋转卡壳法总结
以下所有文章均转载( http://blog.youkuaiyun.com/acmaker/article/details/3176910) 转载请注明出处! 1、旋转卡壳——翻译说明文档 前一段时间看了一位国外大牛的网站,是关于旋转卡壳技术的,内容很不错,就尝试着翻译一下。 关于旋转卡壳技术,最早是在刘汝佳、黄亮的《算法艺术与信息学竞赛》上看到的,是计算几何相关的技术,开始觉得很神奇,转载 2014-08-20 01:17:11 · 2186 阅读 · 0 评论 -
poj 3525 Most Distant Point from the Sea,半平面交 + 二分
int main(){ int n; while(~scanf("%d", &n),n) { vector p, v, normal; for(int i=0; i<n; ++i) { int x, y; scanf("%d%d", &x, &y); p.push_ba原创 2014-08-20 11:20:47 · 1435 阅读 · 0 评论 -
poj 3608 Bridge Across Islands, 旋转卡壳求凸多边形间最小距离
poj 3608 Bridge Across Islands原创 2014-08-20 10:37:54 · 1658 阅读 · 0 评论 -
LA 4728 Square ,旋转卡壳法求多边形的直径
给出一些正方形,让你求这些正方形顶点之间的最大距离的平方。//返回点集直径的平方int diameter2(vector & points) { vector p = ConvexHull(points); int n = p.size(); if(n==1) return 0; if(n==2) return Dist2(p[0], p[1]原创 2014-08-20 02:31:22 · 1961 阅读 · 0 评论 -
poj 2079 Triangle,旋转卡壳求点集的最大三角形
给出一个点集,求顶点在点集中的最大的三角形面积。我们知道这三角形的三个点肯定在凸包上,我们求出凸包之后不能枚举,因为题目n比较大,枚举的话要O(n^3)的数量级,所以采用旋转卡壳的做法:首先枚举三角形的第一个顶点i, 初始化第二个顶点j=i+1和第三个顶点k=j+1,对k进行循环,直到找到第一个k使得cross(i,j,k)>cross(i,j,k+1),如果k==i进入下一次循环原创 2014-08-20 08:51:09 · 1928 阅读 · 0 评论 -
poj 2187 Beauty Contest , 旋转卡壳求凸包的直径的平方
旋转卡壳求凸包的直径的平方板子题#include#include#include#includeusing namespace std;struct Point { int x, y; Point(int x=0, int y=0):x(x),y(y) { }};typedef Point Vector;Vector operator - (c原创 2014-08-20 02:36:49 · 1798 阅读 · 0 评论 -
UVa 10256 The Great Divide,判断两个凸包是否相离
先从给出的两个点集中分别计算出两个凸包,然后判断两个凸包是否相离。#include#include#include#includeusing namespace std;const double eps = 1e-10;double dcmp(double x) { if(fabs(x) < eps) return 0; else return x <原创 2014-08-20 00:56:31 · 2295 阅读 · 0 评论 -
UVa 11168 Airport , 凸包
题意:给出平面上n个点,找一条直线,使得所有点在直线的同侧,且到直线的距离之平均值尽量小。 先求凸包易知最优直线一定是凸包的某条边,然后利用点到直线距离公式进行计算。#include#include#include#include#include#includeusing namespace std;struct Point { in原创 2014-08-20 00:32:01 · 1956 阅读 · 0 评论 -
zoj1041 Transmitters (叉积性质的应用)
叉积: (其值等于两向量组成的三角形的有向面积的两倍)AXB = A.x * B.y - A.y * B.xVector Cross(Vector A, Vector B) { return(A.x * B.y - A.y * B.x); }性质:AXB的符号判断(夹角小于180度)AXB > 0 :则B在A的左边AXB AXB = 0 :则A和B共线,方原创 2014-03-20 14:45:41 · 1739 阅读 · 0 评论 -
ACM计算几何题目推荐
原文地址:点击打开链接计算几何 其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中。之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的算法,在很多领域有着重要的用途(例如本人的专业,GIS)。以后若有机会,我会补充、完善这个列表。计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题原创 2014-03-07 13:58:04 · 3276 阅读 · 0 评论