凸包&旋转卡壳
become__better
大胆去问,大胆去做,效率
展开
-
Scrambled Polygon POJ 2007 (极角排序 )
题目地址:http://poj.org/problem?id=2007 这是一道基础题,就是将点按照相对于(0,0)的极坐标位置排一下序,按逆时针方向。我们用叉积排序,而不用atan函数,因为atan函数在精度要求严格时会失效 可以看做是凸包的先行题。 #include <iostream> #include <stdio.h> #include <stdlib.h&...原创 2019-06-16 18:54:01 · 104 阅读 · 0 评论 -
Wall POJ 1113 (凸包周长)
题目地址:http://poj.org/problem?id=1113 给你n个城堡的坐标(理想为点),建一个围墙离最近城堡的距离为L,求围墙的最小长度。 思路:先构建一个凸包,先假设凸包的边为围墙,再把围墙后移L,围墙之间的空隙用用圆连接。 围墙=凸包周长+2π*L; 凸包的周长for循环求即可。 #include<stdio.h> #include<math.h> #i...原创 2019-06-17 21:23:40 · 137 阅读 · 0 评论 -
Cows POJ 3348 (凸包面积)
题目地址:http://poj.org/problem?id=3348 本题在于求凸包面积,方法是将一个n点凸包的面积看成n-2个三角形的面积之和,进行求解。 #include<stdio.h> #include<math.h> #include<algorithm> #include<iostream> using namespace std; c...原创 2019-06-26 17:25:47 · 146 阅读 · 0 评论 -
Triangle POJ 2079 (旋转卡壳 求最大三角形面积)
题目地址:http://poj.org/problem?id=2079 求凸包三点组成的最大面积。利用对踵点之间的距离是凸函数,以及对踵点的一点向顺时针(逆时针)方向旋转时,另一点也会向同等方向旋转的这两条性质,进行求解,时间复度杂在于了O(n)。 ( 我不能从本质证明这两条性质,只能去理解) #include<stdio.h> #include<math.h> #incl...原创 2019-06-26 18:47:04 · 193 阅读 · 0 评论 -
The Fortified Forest POJ - 1873 (二进制枚举+凸包)
题目地址:http://poj.org/problem?id=1873 二进制枚举所有被删的点,求出能构成围墙的树木的最大价值组合。 另外,G++不要用 %.2lf 今天又在这W了 换成C++ A了 #include<stdio.h> #include<math.h> #include<algorithm> #include<iostream> ...原创 2019-07-02 21:23:07 · 83 阅读 · 0 评论 -
Grandpa's Estate POJ 1228 (凸包)
题目地址:http://poj.org/problem?id=1228 凸包丢失了若干个点,给你剩余的点,求这些剩余的点能不能构成一个唯一的凸包,即剩余点加上任意点(剩余点还在凸包边上),只能构成一个凸包。 在剩余点中,一遍至少三个点才能保持唯一性,两点的话可以在两点之间的外面加一点,三点加一点的话,原先三点中的中间的点会失效。 一种错误的写法 建两个凸包,一个允许多点共线,一个不允许,看这两个凸...原创 2019-06-26 19:37:18 · 180 阅读 · 0 评论 -
凸包 ACM
在二维欧几里得空间中,凸包可想象为一条刚好包著所有点的橡皮圈。 用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点。(以上摘自百度百科) 在ACM中,凸包是必不可少的知识点。下面我们来了解凸包。 建立凸包 1 选基点 在理论上,我们在 横坐标最小、横坐标最大,纵坐标最小、纵坐标最大的四个点当中选一个点即可(因为以其为顶点连接任意两个点,...原创 2019-06-16 19:40:11 · 611 阅读 · 0 评论 -
矩形面积 HDU - 5251 (旋转卡壳 求最小矩形覆盖)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5251 开始没想到用凸包,看了大佬的博客才明白。 思路:矩形各边必经过凸包上的点,并且矩形一边为凸包上的边,另外三边经过凸包上的点。先枚举矩形的一个边(即凸包上的边),再确定另外三点。矩形为高低左右四边,假设此边为为低边(相对意义上的),再确定另外三边上的三个点即可。与此边距离最大的点是高边上的点,利用...原创 2019-07-03 21:24:34 · 272 阅读 · 0 评论