题目描述

小 x伤心的走上了 Star way to heaven。

到天堂的道路是一个笛卡尔坐标系上一个 n*m的长方形通道 顶点在0,0 和 。

小 n,m 从最左边任意一点进入,从右边任意一点走到天堂,最左最右的距离n为 ,上下边界距离m为 。

其中长方形有 k个 ,每个k 都有一个整点坐标,star的大小可以忽略不计。

每个star 以及长方形上下两个边缘宇宙的边界都有引力,所以为了成功到达 小w 离他们越远越好。

请问小w走到终点的路径上,距离所有星星以及边界的最小距离最大值可以为多少?

输入格式
一行三个整数 。
接下来k行,每行两个整数 表示一个点的坐标。

输出格式
一行一个数表示答案。保留到小数点后9位。

样例
样例输入
10 5 2
1 1
2 3
样例输出
1.118033989

首先,我们要先简化题目

给出一个个星星,以某一个半径,封住一列,使其变为两部分,求这个半径最小为多少

题目分析

我们可以二分ans,然后用dfs或bfs来进行判断,但是,实际上,用这个方法会超时

于是,我们可以换一个思路,其实,我们可以从最上面为起点,构造最小生成树,如果说,
一个点的半径能够触碰到最下面,那就说明,已经成功封闭了

那具体该如何操作呢?

这里不能用常用的kruskal,而是用比较冷门的prim,首先,每一个初始值为每一个点到最上面的距离,然后取出最小的也就是离上面最近的,然后,用这一个点,更新每一点的最低值,其中,算出最大值即可

哪有什么时候结束呢,我们可以在开一个,为最上面到最下面的最小值,如果说,这个值被选中了,就说明已经被封闭来,直接输出即可,但是求的是半径,所以要/2

疑问?m不该是列吗,为什么变成来上下边界距离m

#include<bits/stdc++.h>
using namespace std;
int n;
double m;
int k;
double x[10005];
double y[10005];
double dist[100005];
int vis[10005];
double js(double x1,double y1,double x2,double y2)
{
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main()
{
scanf("%d %lf %d",&n,&m,&k);
for(int i=1;i<=k;i++)
{
scanf("%lf %lf",&x[i],&y[i]);
}
for(int i=1;i<=k;i++)
{
dist[i]=m-y[i];
}
dist[k+1]=m;
double ans=-1;
dist[0]=1000000;
for(int j=1;j<=k+1;j++)
{
int mq=0;
for(int i=1;i<=k+1;i++)
{
if(!vis[i]&&dist[i]<dist[mq]){
mq=i;
}
}
ans=max(dist[mq],ans);
if(mq==k+1)
{
printf("%.9lf",ans/2);
return 0;
}
for(int i=1;i<=k;i++)
{
dist[i]=min(dist[i],js(x[i],y[i],x[mq],y[mq]));
}
dist[k+1]=min(dist[k+1],y[mq]);
vis[mq]=1;
}
}

Star Way To Heaven的更多相关文章

  1. [CSP-S模拟测试]:Star Way To Heaven(最小生成树Prim)

    题目描述 小$w$伤心的走上了$Star\ way\ to\ heaven$. 到天堂的道路是一个笛卡尔坐标系上一个$n\times m$的长方形通道(顶点在$(0,0)$和$(n,m)$),小$w$ ...

  2. 7.15考试总结(NOIP模拟16)[Star Way To Heaven·God Knows·Lost My Music]

    败者死于绝望,胜者死于渴望. 前言 一看这个题就来者不善,对于第一题第一眼以为是一个大模拟,没想到是最小生成树. 对于第二题,先是看到了状压可以搞到的 20pts 然后对着暴力一顿猛调后来发现是题面理 ...

  3. NOIP模拟16:「Star Way To Heaven·God Knows·Loost My Music」

    T1:Star Way To Heaven 基本思路:   最小生成树.   假如我们将上边界与下边界看作一个点,然后从上边界经过星星向下边界连边,会发现,他会形成一条线将整个矩形分为左右两个部分. ...

  4. 题解 Star Way To Heaven

    传送门 这整场都不会--这题想二分不会check 其实check很好写,考虑一个mid的实际意义 即为check在不靠近每个star及边界mid距离内的前提下,能不能到达\((n,m)\) 其实可以转 ...

  5. 20190817-T1-LOJ6322「雅礼国庆 2017 Day6」Star Way To Heaven

    写这篇题解是因为作者太蒻已经忘了最小生成树了. <题面> 这个题还真是想不到最小生成树. $80\%$算法 复杂度:$\Theta(k^2 \log N )$ 用了二分答案(明显答案具有单 ...

  6. 「模拟8.17」star way to heaven(并查集,最小生成树)

    80分打法 首先二分最后答案,答案即为r,可看作以每个k为圆心r为半径的圆 我们进行并查集维护,维护相交的圆的边界 最后判断是否存在圆将上下边界覆盖,如有证明不行 1 #include<iost ...

  7. NOIP 模拟 $16\; \rm Star Way To Heaven$

    题解 \(by\;zj\varphi\) 看懂题!!! 从最左穿到最右,一定会经过两个星星之间或星星和边界之间,那么我们穿过时当前最优一定是走中点 而我们要求最小的距离最大,那么我们将所有星星和边界( ...

  8. NOIP模拟测试24「star way to hevaen·lost my music」

    star way to heaven 题解 大致尝试了一下并查集,记忆化搜索,最小生成树 最小生成树是正解,跑最小生成树然后找到最大的值 欧几里德距离最小生成树学习 prim楞跑 至于为什么跑最小生成 ...

  9. NOIP模拟 24

    连续爆炸的开端. 从这一场开始我没状态了 T1 star way to heaven 受强降雨boboQQQ影响,我一直认为这是一道和凸包有关的计算几何题 很快就弃了,除了期望没做过带实数的题,所以吓 ...

随机推荐

  1. linux 操作只读变量

    由于该操作需要用到 gdb,所以需要先 安装好 gdb 1. 查询是否有gdb: 2. 如果没有,需要先执行 yum install gdb 命令进行安装 3. 定义 只读变量 abc 并打印值: a ...

  2. Restful、SOAP、RPC、SOA、微服务之间的区别

    什么是Restful Restful是一种架构设计风格,提供了设计原则和约束条件,而不是架构,而满足这些约束条件和原则的应用程序或设计就是 Restful架构或服务. 主要的设计原则: 资源与URI ...

  3. java 9+版本中,接口的内容总结

    java 9+版本中,接口的内容可以有: 1.成员变量其实是常量,格式: [public]  [static]  [final] 数据类型 常量名称=数据值: 注意: 常量必须进行赋值,而且一旦赋值不 ...

  4. springboot项目WEB-INF 目录 jsp页面报404

    我是跟着<深入浅出 Spring Boot 2.x>这本书学习的,在"初识Spring MVC"章节中,搭建项目,然后访问jsp页面时报错:Path with &quo ...

  5. Visual SVN安装使用教程

    visual svn使用教程  SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. ...

  6. springboot目录结构、重要配置文件、重要注解的详解

    前面2篇博客已经带着大家搭建了springboot项目,并编写了持久化接口部署到tomcat下访问.这里我们一起补充下springboot的基本信息 一.springboot简单介绍 springbo ...

  7. nim_duilib(17)之xml配置窗口调整大小

    本文目标 xml配置窗口,使得窗口可以调整大小. sizebox windows的属性sizebo的作用就是设置窗口可以调整大小.鼠标放到窗口边缘,拖动窗口并改变大小. 一个例子 <Window ...

  8. nim_duilib(14)之xml配置半透明窗体控件不透明

    before starting note 截至目前,我只能用xml写一些简单的布局和设置控件属性,循序渐进吧. 正在学习nim_duilib的xml的一些属性. xml配置半透明 GTAV中就有很多控 ...

  9. 【LeetCode】641. Design Circular Deque 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址:https://leetcode.com/problems/design-ci ...

  10. 1135 - Count the Multiples of 3

    1135 - Count the Multiples of 3   PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limi ...