hd1007
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std; struct node
{
double x,y;
}point[];
int n; bool hAlignLess(node p1,node p2)
{
if(p1.x != p2.x) return p1.x < p2.x;
else return p1.y < p2.y;
} double getDist(node p1, node p2)
{
return sqrt((p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y));
} double getMin(double a, double b)
{
return a<b?a:b;
} double solve(int l,int r)
{
if(l == r)
return ;
if(l == r - )
return getDist(point[l],point[r]);
if(l == r - )
return getMin(getMin(getDist(point[l],point[l+]),getDist(point[l+],point[l+])),getDist(point[l],point[l+]));
int i,j,mid = (l+r) >> ;
double curmin = getMin(solve(l,mid),solve(mid+,r));
for(i=l;i<=r;i++)
for(j=i+;j<=i+ && j<=r;j++)
{
curmin = getMin(curmin,getDist(point[i],point[j]));
}
return curmin;
} int main() {
int i;
while(scanf("%d",&n)!=EOF && n){
for(i = ; i < n; i++){
scanf("%lf %lf",&point[i].x,&point[i].y);
}
sort(point,point+n,hAlignLess);
double ans = solve(,n-);
printf("%.2lf\n",ans/);
}
return ;
}
hd1007的更多相关文章
随机推荐
- 20175316盛茂淞 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周(6)
20175316与20175329 结对编程练习_四则运算(第二周) 1.需求分析 实现一个命令行程序,要求: 自动生成指定数量的小学四则运算题目(加.减.乘.除) 支持整数 统计正确率 支持多运算符 ...
- 使用kbmMWConfiguration 让 kbmmw smartservice 更聪明
以前的文章介绍了 很多 kbmmw smartservice 的使用,尤其是 rest 服务,所有的的配置都是通过 开发时写编码实现的,这样就可能导致,针对不同的应用环境,我们要重新编译代码,当然也可 ...
- JS格式化日期时间的方法
//格式化时间的方法 function format(fmt, date) { var o = { "M+": date.getMonth() + 1, //月份 "d+ ...
- Turtle库的建立——汉诺塔
Turtle库的建立——汉诺塔 1.首先是要用递归方法来完成这个汉诺塔法则 2.其次,就要编程好代码以及熟练掌握Turtle函数库 一. 相关代码如下: import turtle class St ...
- Maven之pom.xml配置文件详解
此文非原创,摘自:https://www.baidu.com/link?url=GlGgW21nijIiULDZj0RfPH8ofqGMqEnAzXiym7O3hfrZM5nFH2enukemBNTX ...
- SSH通过密钥登陆
A服务器上操作 ssh-keygen -t rsa/dsa 后面所带参数rsa/dsa为加密方式,默认为dsa [root@localhost ~]# ssh-keygen Generating pu ...
- poj 3468 A Simple Problem with Integers(线段树区间更新)
Description You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. On ...
- ADO.NET学习笔记(1)
ADO.Net是.Net框架中为数据库的访问而封装的一个库.通过这个库我们可以简单便捷的访问数据库,并对数据库进行一些增删改查的操作,目前ADO.Net支持四种主流的数据库,分别是SQL.OLE DB ...
- Android手机app的adb命令测试电量
Android手机app电量测试 Android 5.0及以上的设备, 允许我们通过adb命令dump出电量使用统计信息 第一步:手机安装要测试的应用,打开手机开发者模式-USB模式,运行cmd.ex ...
- iptables简单用法
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 &l ...