思路:

旋转卡壳应用

注意点&边  边&边  点&点 三种情况

//By SiriusRen
#include <cmath>
#include <cstdio>
#include <algorithm>
using namespace std;
const double eps=1e-;
const int N=;
typedef double db;
int n,m;
struct P{db x,y;P(){}P(db X,db Y){x=X,y=Y;}}p1[N],p2[N];
P operator-(P a,P b){return P(a.x-b.x,a.y-b.y);}
db operator*(P a,P b){return a.x*b.y-a.y*b.x;}
db operator^(P a,P b){return a.x*b.x+a.y*b.y;}
db dis(P c){return sqrt(c.x*c.x+c.y*c.y);}
db dotc(P a,P b,P c){return (b-a)^(c-a);}
db difc(P a,P b,P c){return (b-a)*(c-a);}
db p2seg(P a,P b,P c){
if(dotc(a,b,c)<-eps)return dis(a-c);
if(dotc(b,a,c)<-eps)return dis(b-c);
return abs(difc(a,b,c)/dis(a-b));
}
db seg2seg(P a,P b,P c,P d){
return min(min(p2seg(a,b,c),p2seg(a,b,d)),min(p2seg(c,d,a),p2seg(c,d,b)));
}
double solve(P p[],P q[],int np,int nq){
int sp=,sq=;
for(int i=;i<=np;i++)if(p[i].y<p[sp].y)sp=i;
for(int i=;i<=nq;i++)if(q[i].y>q[sq].y)sq=i;
p[np+]=p[],q[nq+]=q[];
double tmp,ans=1e9;
for(int i=;i<=np;i++){
while(tmp=(difc(p[sp+],q[sq+],p[sp])-difc(p[sp+],q[sq],p[sp]))>eps)sq=sq%nq+;
if(tmp<-eps)ans=min(ans,p2seg(p[sp],p[sp+],q[sq]));
else ans=min(ans,seg2seg(p[sp],p[sp+],q[sq],q[sq+]));
sp=sp%np+;
}return ans;
}
int main(){
while(scanf("%d%d",&n,&m)&&(n||m)){
for(int i=;i<=n;i++)scanf("%lf%lf",&p1[i].x,&p1[i].y);
for(int i=;i<=m;i++)scanf("%lf%lf",&p2[i].x,&p2[i].y);
printf("%lf\n",min(solve(p1,p2,n,m),solve(p2,p1,m,n)));
}
}

POJ 3608 旋转卡壳的更多相关文章

  1. poj 3608(旋转卡壳求解两凸包之间的最短距离)

    Bridge Across Islands Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9768   Accepted: ...

  2. Bridge Across Islands POJ - 3608 旋转卡壳求凸包最近距离

    \(\color{#0066ff}{题目描述}\) 几千年前,有一个小王国位于太平洋的中部.王国的领土由两个分离的岛屿组成.由于洋流的冲击,两个岛屿的形状都变成了凸多边形.王国的国王想建立一座桥来连接 ...

  3. poj 3608 旋转卡壳求不相交凸包最近距离;

    题目链接:http://poj.org/problem?id=3608 #include<cstdio> #include<cstring> #include<cmath ...

  4. Poj 2187 旋转卡壳

    Poj 2187 旋转卡壳求解 传送门 旋转卡壳,是利用凸包性质来求解凸包最长点对的线性算法,我们逐渐改变每一次方向,然后枚举出这个方向上的踵点对(最远点对),类似于用游标卡尺卡着凸包旋转一周,答案就 ...

  5. poj 2079(旋转卡壳求解凸包内最大三角形面积)

    Triangle Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 9060   Accepted: 2698 Descript ...

  6. POJ 2187 旋转卡壳 + 水平序 Graham 扫描算法 + 运算符重载

    水平序 Graham 扫描算法: 计算二维凸包的时候可以用到,Graham 扫描算法有水平序和极角序两种. 极角序算法能一次确定整个凸包, 但是计算极角需要用到三角函数,速度较慢,精度较差,特殊情况较 ...

  7. POJ 3608 Bridge Across Islands (旋转卡壳)

    [题目链接] http://poj.org/problem?id=3608 [题目大意] 求出两个凸包之间的最短距离 [题解] 我们先找到一个凸包的上顶点和一个凸包的下定点,以这两个点为起点向下一个点 ...

  8. POJ 3608 Bridge Across Islands --凸包间距离,旋转卡壳

    题意: 给你两个凸包,求其最短距离. 解法: POJ 我真的是弄不懂了,也不说一声点就是按顺时针给出的,不用调整点顺序. 还是说数据水了,没出乱给点或给逆时针点的数据呢..我直接默认顺时针给的点居然A ...

  9. POJ 3608 Bridge Across Islands(旋转卡壳,两凸包最短距离)

    Bridge Across Islands Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7202   Accepted:  ...

随机推荐

  1. 【SGU194&ZOJ2314】Reactor Cooling(有上下界的网络流)

    题意: 给n个点,及m根pipe,每根pipe用来流躺液体的,单向的,每时每刻每根pipe流进来的物质要等于流出去的物质,要使得m条pipe组成一个循环体,里面流躺物质. 并且满足每根pipe一定的流 ...

  2. ASPNET Core 部署 Linux — 使用 Jexus Web Server

    第一步 安装.Net Core环境 安装 dotnet 环境参见官方网站 https://www.microsoft.com/net/core. 选择对应的系统版本进行安装.安装完成过后 输入命令查看 ...

  3. MapReduce获取分片数目

    问题 MapReduce Application中mapper的数目和分片的数目是一样的,可是分片数目和什么有关呢? 默认情况下.分片和输入文件的分块数是相等的.也不全然相等,假设block size ...

  4. win7如何更改语言教程

    一.首先从桌面左下角的开始菜单中找到“控制面板”,然后打开,如下图所示: 打开电脑控制面板 二.进入控制面板之后,我们再进入“时钟.语言和区域”设置,如下图所示: 电脑语言改成英文方法 三.进入电脑语 ...

  5. Hadoop 执行过程中出现 name node is in safe mode 问题

    解决方法: 1.进入hadoop安装根目录 如 :我的hadoop 安装在/usr/local/hadoop 执行 cd /usr/local/hadoop bin/hadoop dfsadmin - ...

  6. Tcl脚本调用高层API实现仪表使用和主机创建配置的自己主动化測试用例

    #设置Chassis的基本參数,包含IP地址.port的数量等等 set chassisAddr 10.132.238.190 set islot 1 set portList {11 12} ;#端 ...

  7. 人脸识别“Neural Aggregation Network for Video Face Recognition”

    人脸识别的新方法.主要对视频进行处理.使用CNN提取视频中多帧人像的特征,之后使用聚合模块对全部帧的特征向量进行学习累积.实验结果表明这样的方法比手工设计的方法如平均池化要好.人脸识别结构例如以下图所 ...

  8. Jmeter技巧

    Jmeter参数化的4种方法 用Jmeter测试时包含两种情况的参数,一种是在url中,一种是请求中需要发送的参数. URL中的参数,如:http://blog.da-fang.com/index.p ...

  9. Android学习笔记之Spinner下拉列表使用案例

    (1)两种方法提冲Spinner中的数据源:通过list集合,或者是通过xml文件进行配置 (2)布局代码例如以下: <RelativeLayout xmlns:android="ht ...

  10. 《炉石传说》架构设计赏析(4):Asset管理

    欢迎转载,请注明作者[燕良@游戏开发]及原文地址:http://blog.csdn.net/neil3d/article/details/39580197 另外.欢迎大家来我的QQ群交流各种游戏引擎相 ...