博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj1185 [HNOI2007]最小矩形覆盖 旋转卡壳求凸包
阅读量:5037 次
发布时间:2019-06-12

本文共 1639 字,大约阅读时间需要 5 分钟。

[HNOI2007]最小矩形覆盖

Time Limit: 10 Sec  Memory Limit: 162 MBSec  Special Judge
Submit: 2081  Solved: 920
[][][]

Description

给定一些点的坐标,要求求能够覆盖所有点的最小面积的矩形,
输出所求矩形的面积和四个顶点坐标
 

Input

第一行为一个整数n(3<=n<=50000)
从第2至第n+1行每行有两个浮点数,表示一个顶点的x和y坐标,不用科学计数法
 

Output

第一行为一个浮点数,表示所求矩形的面积(精确到小数点后5位),
接下来4行每行表示一个顶点坐标,要求第一行为y坐标最小的顶点,
其后按逆时针输出顶点坐标.如果用相同y坐标,先输出最小x坐标的顶点

Sample Input

6 1.0 3.00000
1 4.00000
2.0000 1
3 0.0000
3.00000 6
6.0 3.0

Sample Output

18.00000
3.00000 0.00000
6.00000 3.00000
3.00000 6.00000
0.00000 3.00000

HINT

 

Source

[ ][ ][ ]

 Back

 

首先有一个结论,矩形的一条边一定在凸包上!!!
枚举凸包上的边
用旋转卡壳在凸包上找矩形另外三点。。
差不多吧,其它三个点可以找的吧,而且也是有单调性的。
1 #pragma GCC optimize(2) 2 #pragma G++ optimize(2) 3 #include
4 #include
5 #include
6 #include
7 #include
8 9 #define eps 0.0000000110 #define N 5000711 using namespace std;12 inline int read()13 {14 int x=0,f=1;char ch=getchar();15 while(!isdigit(ch)){
if(ch=='-')f=-1;ch=getchar();}16 while(isdigit(ch)){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}17 return x*f;18 }19 20 int n,tot;21 double ans=1e60;22 struct P23 {24 double x,y;25 P(){}26 P(double _x,double _y):x(_x),y(_y){}27 friend bool operator<(P a,P b){
return fabs(a.y-b.y)
0;43 }44 void Graham()45 {46 for (int i=2;i<=n;i++)47 if(p[i]
1&&(q[tot]-q[tot-1])*(p[i]-q[tot])
-eps)p=(p+1)%tot;65 while((q[i+1]-q[i])/(q[r+1]-q[i])-(q[i+1]-q[i])/(q[r]-q[i])>-eps)r=(r+1)%tot;66 if(i==0)l=r;67 while((q[i+1]-q[i])/(q[l+1]-q[i])-(q[i+1]-q[i])/(q[l]-q[i])

 

转载于:https://www.cnblogs.com/fengzhiyuan/p/8530629.html

你可能感兴趣的文章
HDU 1017[A Mathematical Curiosity]暴力,格式
查看>>
[算法之美] KMP算法的直观理解
查看>>
EntityFramework 性能优化
查看>>
基于LBS功能,Geohash在PHP中运用实例
查看>>
NoClassDefFoundError: org.ksoap2.transport.HttpTransportSE
查看>>
关于MVC与MVP的理解
查看>>
PHP preg_match正则表达式
查看>>
Windows2008R2安装Exchange 2010前必须要做的准备工作
查看>>
了解栈(顺序栈)的实现方法
查看>>
bzoj 3732 Network
查看>>
对象数组
查看>>
Hadoop创建/删除文件夹出错
查看>>
差速移动机器人之建模与里程计
查看>>
Django学习笔记
查看>>
03-THREE.JS GUI使用
查看>>
Python os.path.join 双斜杠的解决方法
查看>>
高并发下线程安全的单例模式
查看>>
Windows下修改Git bash的HOME路径(转)
查看>>
第三章 TCP/IP
查看>>
【cocos2d-x制作别踩白块儿】第一期:游戏介绍
查看>>