【最小矩形面积覆盖:凸包+旋转卡壳】UVA 10173 Smallest Bounding Rectangle
题目链接:UVA 10173 Smallest Bounding Rectangle
题目大意
给你n个点,求能够覆盖所有点集的最小矩形面积。
笔者的第2道凸包题目,凸包 + 旋转卡壳,实现点集的最小矩形面积覆盖问题
“>=0”写成”<=0“坑了我一下午!QAQ
说一下思路
- ①Graham’s Scan法构建凸包,时间复杂度O(nlogn)
- ②利用旋转卡壳的思想,最小矩形至少存在一条边与凸包共线。所以直接枚举底边,利用旋转卡壳确定其余三个点即可(kuangbin的最小矩形覆盖模板,但操作函数我在结构体外定义,省空间!)
参考代码
/*====================================*\
|* 最小矩形面积覆盖 *|
|* 多边形A必须是凸包(默认:逆时针顺序)*|
\*====================================*/
/*Author:Hacker_vision*/
#include<bits/stdc++.h>
#define eps 1e-8
using namespace std;
const