[模板]平面最近点对

实现

将平面内点按$x$坐标排序,分治$x$坐标,设$ret=min(f(l,mid),f(mid+1,r))$,

将$x\in[mid-ret,mid+ret]$内的点按$y$坐标排序,算每个点与相邻的$6$个点的距离找最优解即可.

时间复杂度:$O(nlogn)$.

#define N 100005
#define INF 1e15
struct point{double x,y;
}p[N];
inline double sqr(double k){return k*k;
}
inline double dis(point x,point y){return sqrt(sqr(x.x-y.x)+sqr(x.y-y.y));
}
inline bool cmpx(point x,point y){if(x.x!=y.x) return x.x<y.x;return x.y<y.y;
}
inline bool cmpy(point x,point y){if(x.y!=y.y) return x.y<y.y;return x.x<y.x;
}
inline double min_d(int l,int r){double ret=INF;if(r-l<=20){for(int i=l;i<r;++i)for(int j=i+1;j<=r;++j)ret=min(ret,dis(p[i],p[j]));return ret;}int mid=l+r>>1;ret=min(min_d(l,mid),min_d(mid+1,r)); while(p[l].x+ret<p[mid].x) ++l;while(p[r].x-ret>p[mid].x) --r;sort(p+l,p+1+r,cmpy);for(int i=l;i<r;++i)for(int j=min(r,i+6);j>i;--j)ret=min(ret,dis(p[i],p[j])); sort(p+l,p+1+r,cmpx);return ret;
}
inline double min_dis(){sort(p+1,p+1+n,cmpx);return min_d(1,n);
}

推荐

http://www.cnblogs.com/xdruid/archive/2012/05/27/CP.html

转载于:https://www.cnblogs.com/AireenYe/p/6257620.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能与图像传感器

随着人工智能时代的来临,相应的芯片产品和行业也产生了相应的新方向。 在人工智能的各个分支中,机器视觉无疑是应用最广泛的方向,它支撑着诸如人脸检测、工业异常检测、手势识别等诸多重要的应用。顾名思义,机器视觉是使用机器学习/人工智能的方法来分析视觉信号,并且通过…

用户空间访问I2C设备驱动

2012-01-11 15:33:43标签&#xff1a;Linux I2C 字符设备 设备驱动 用户空间 原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/761830 关于Linux下如何编…

097实战 关于ETL的几种运行方式

一&#xff1a;代码部分 1.新建maven项目 2.添加需要的java代码   3.书写mapper类 4.书写runner类 二&#xff1a;运行方式 1.本地运行 2.集群运行 3.本地提交集群运行 三&#xff1a;本地运行方式 1.解压hadoop到本地 2.修改配置文件HADOOP_HOME 3.解压common的压缩包 4.将压…

模拟ssh, hashlib模块, struct模块, subprocess模块

一. 模拟ssh # 服务器端 import socket import subprocess # 系统操作server socket.socket()server.bind((127.0.0.1,8008))server.listen(5)while True:print("server is working.....")conn,addr server.accept()# 字节类型while True:# 针对window系统try:…

使用pssh进行并行批量操作

假如同时给上千台服务器执行一个命令,拷贝一个文件,杀一个进程等,有什么简化运维管理的工具呢?在小型使用中我都是使用for循 环,数量巨大,一方面不确定操作是否成功,一方面for循环语句性能不好估计且是不是同步并行执行.&#xff0c;这类工具比如 pdsh&#xff0c;mussh&#…

图像清晰度评价函数

概述 图像清晰度是用来指导调焦机构找到正焦位置的评价函数。理想的清晰度评价曲线如下图所示,其中P 是评价函数最大值的位置,其对应正焦位置,P1 和P2 为正焦位置焦前和焦后采集到图像的清晰度评价结果。 为了指导调焦机构找到正焦位置,清晰度曲线须具有以下特点: 单…

Linux下读写芯片的I2C寄存器

Linux下读写芯片的I2C寄存器 2012-01-10 11:40:18 标签&#xff1a;Linux 寄存器 驱动 读写 I2C 原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/76096…

列表和表格---学习笔记02

第7章 列表和表格 7.1 有序列表<ol type"A"><li>这里是第1个li</li><li>这里是第2个li</li><li>这里是第3个li</li></ol> ol属性&#xff1a;type : 数字(1),大小写字母(A,a),大小写罗马数字(I,i)start: "起始…

(下)挖掘传统行业日志大数据的无限价值

&#xfffc;8 月 27 日晚上八点&#xff0c;七牛云高级解决方案架构师程雪松在 IT 大咖说进行了题为《挖掘传统行业日志大数据的无限价值》的直播&#xff0c;对传统行业运维常见困境和统一日志管理的必要性进行了深入解析&#xff0c;并通过 Pandora 的一些真实用户案例和大家…

CMOS图像传感器 —— ISOCELL

最近,外媒曝光了三星最新的CIS传感器路线图,路线图显示,三星在2亿像素之外已经规划2025年推出576MP像素的传感器,也就是5亿7千6百万像素。 若5.76亿像素的传感器推出,意味着手机传感器可媲美中高端单反水平了。三星没有提及这个5.76亿像素的传感器是怎样实现的。因…

LeetCode 153. Find Minimum in Rotated Sorted Array (在旋转有序数组中找到最小值)

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2). Find the minimum element. You may assume no duplicate exists in the array. 题目标签&#xff1a;Array, Binary Se…

YUV图像

YUV420P&#xff0c;Y&#xff0c;U&#xff0c;V三个分量都是平面格式&#xff0c;分为 I420 和 YV12 。 I420 格式和 YV12 格式的不同处在U平面和V平面的位置不同。在I420格式中&#xff0c;U平面紧跟在Y平面之后&#xff0c;然后才是V平面&#xff08;即&#xff1a;YUV&…

色调映射(Tone Mapping)

一、概述 虽然HDR 图像有较大的动态范围,能更细致地反映真实场景,但他的缺点也很明显。一是同尺寸的数据比低动态范围图像大,需要更大的存储空间与传输带宽。二是难以输出,目前大多数显示器、打印机等图形输出设备的动态范围要比普通的高动态范围图像小得多。。因此,色调映…

实用软件工具

1.突破百度网盘下载速度现在&#xff0c;使用 Aria2下载 Aria2-不限速全平台下载利器但是百度网盘账号会被限速 &#xff0c;冲会员解除正常限制网速2.Safari 预览&#xff0c;将网页转化为自定义尺寸 PDF 3.清除Xcode 缓存 删除模拟器运行缓存&#xff0c;找到Developer->…

[原创]Toolbar setNavigationIcon无效

最近在做一个Toolbar&#xff0c;setNavigationIcon()这个方法一直无效&#xff0c;说什么的都有&#xff0c;什么getSupportActionBar().setNavigationIcon()的&#xff0c;说设置style的&#xff0c;说放到setSupportActionBar()之后的。 其实没有说全&#xff0c;还应该放到…

YUV格式详解

分类&#xff1a; H.264 MPEG TV 2008-05-14 09:24 16181人阅读 评论(21) 收藏 举报 YUV是指亮度参量和色度参量分开表示的像素格式&#xff0c;而这样分开的好处就是不但可以避免相互干扰&#xff0c;还可以降低色度的采样率而不会对图像质量影响太大。YUV是一个比较笼统地说…

KVM安装、镜像创建(一)

环境准备 VMware Workstation Pro启动虚拟化 查看启动的系统是否支持vmx或svm grep -E (vmx|svm) /proc/cpuinfo 备注&#xff1a;操作系统centos 7 KVM安装 1、yum查看kvm安装包 yum list |grep kvm 2、安装 yum install -y qemu-kvm qemu-kvm-tools libvirt3、启动libvirtd s…

Sensor 结构——前照、背照、堆栈

优异的工艺和技术可以使得即便不使用更新结构的CMOS,同样拥有更好的量子效率、固有热噪声、增益、满阱电荷、宽容度、灵敏度等关键型指标。在相同技术和工艺下,底大一级的确压死人(全画幅和aps-c)。人类的进步就是在不断发现问题,解决问题。背照式以及堆栈式CMOS的出现,也…

少犯非智力错误

工作节省时间最重要的方法之一就是少犯非智力错误。 同事反馈说不能预览&#xff0c;排查半天找不到问题&#xff0c;最后发现是IP地址配错了。 现场问题同事搞半天找不出原因&#xff0c;结果一看是网域配错了。 还有些问题开始排查定位不到原因&#xff0c;回头看时才发现端口…

搭建分布式hadoop2.x集群

前期准备&#xff1a; 1.我这里用了三台虚拟机&#xff0c;.默认已经配置好静态IP和IP域名映射&#xff0c;它们相互之间可以ping通 第一台&#xff1a;192.168.174.131 hadoopNumber01.medal.com 第二台&#xff1a;192.168.174.132 hadoopNumber02.meda.com 第三台…