bzoj3007: 拯救小云公主
Description
Input
Output
#include<cstdio>
#include<cmath>
#include<algorithm>
int n;
double xm,ym;
struct pos{double x,y;}ps[];
int q[],ed[];
bool discmp(double x,double y,double z){
return x*x+y*y<z*z;
}
bool chk(double R){
int ql=,qr=;
for(int i=;i<n;i++){
if(ps[i].x-<R||ps[i].y+R>ym){
q[qr++]=i;
ed[i]=;
if(ps[i].x+R>xm||ps[i].y-R<)return ;
}else ed[i]=;
}
while(ql!=qr){
int w=q[ql++];
for(int i=;i<n;i++)if(!ed[i]&&discmp(ps[i].x-ps[w].x,ps[i].y-ps[w].y,R*)){
q[qr++]=i;
ed[i]=;
if(ps[i].x+R>xm||ps[i].y-R<)return ;
}
}
return ;
}
int main(){
scanf("%d%lf%lf",&n,&xm,&ym);
for(int i=;i<n;i++){
scanf("%lf%lf",&ps[i].x,&ps[i].y);
}
double L=,R=xm+ym+;
while(R-L>1e-){
double M=(L+R)/.;
if(chk(M))R=M;
else L=M;
}
printf("%.2lf\n",(L+R)/.);
return ;
}
#include<cstdio>
#include<cmath>
#include<algorithm>
int n,xm,ym,ep=;
int f[];
struct pos{int x,y;}ps[];
struct edge{int a,b;long long c;}e[];
bool operator<(edge a,edge b){
return a.c<b.c;
}
inline long long min2(long long a,long long b){
a*=a;b*=b;
return a<b?a:b;
}
int get(int x){
int a=x,c;
while(x!=f[x])x=f[x];
while(x!=(c=f[a]))f[a]=x,a=c;
return x;
}
int main(){
scanf("%d%d%d",&n,&xm,&ym);
for(int i=;i<n;i++){
f[i]=i;
scanf("%d%d",&ps[i].x,&ps[i].y);
e[ep++]=(edge){i,n,*min2(xm-ps[i].x,ps[i].y-)};
e[ep++]=(edge){i,n+,*min2(ps[i].x-,ym-ps[i].y)};
for(int j=;j<i;j++){
long long x=ps[i].x-ps[j].x,y=ps[i].y-ps[j].y;
e[ep++]=(edge){i,j,x*x+y*y};
}
}
f[n]=n;f[n+]=n+;
std::sort(e,e+ep);
for(int i=;i<ep;i++){ int a=get(e[i].a),b=get(e[i].b);
if(a!=b){
f[a]=b;
if(get(n)==get(n+)){
printf("%.2f\n",sqrt(e[i].c)/.+1e-);
return ;
}
}
}
return ;
}
bzoj3007: 拯救小云公主的更多相关文章
- bzoj3007: 拯救小云公主(二分+并查集)
挺水的题...好多题解说是对偶图,其实感觉不能算严格意义上的对偶图吧QAQ 先二分答案r,然后以boss为中心半径为r的圆不能走,求能否从左下走到右上. 不能从左下走到右上,说明这堆圆把图隔开了,于是 ...
- 【BZOJ3007】拯救小云公主 二分+几何+对偶图
[BZOJ3007]拯救小云公主 Description 英雄又即将踏上拯救公主的道路…… 这次的拯救目标是——爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了 ...
- 【BZOJ】【3007】拯救小云公主
思路题 我的naive的做法是二分答案+判定是否有路径可走……但是没有正确理解[走的方向任意]这句话…… 其实就是说想咋走咋走= =360°无死角乱走…… 所以其实是个平面上的问题…… 我们可以换个方 ...
- BZOJ:4219: 跑得比谁都快 3007: 拯救小云公主
4219: 跑得比谁都快 3007: 拯救小云公主 三角剖分的解释可以看这里:http://www.cnblogs.com/Enceladus/p/6706444.html 后一道是前一道的弱化版. ...
- 洛谷 P2498 [SDOI2012]拯救小云公主 解题报告
P2498 [SDOI2012]拯救小云公主 题目描述 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到\(boss\)的洞穴门口,他一下子就懵了,因为面前不只是一 ...
- 二分+并查集【bzoj3007】[SDOI2012]拯救小云公主
Description 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意 ...
- 【bzoj3007】拯救小云公主 二分+对偶图+并查集
题目描述 英雄又即将踏上拯救公主的道路…… 这次的拯救目标是——爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意识到自己还是等 ...
- P2498 [SDOI2012]拯救小云公主
\(\color{#0066ff}{ 题目描述 }\) 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只bos ...
- 洛谷P2498 [SDOI2012]拯救小云公主 【二分 + 并查集】
题目 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意识到自己还是等级1 ...
随机推荐
- mysql中模糊查询的四种用法介绍
下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...
- SAP 物料移动tcode
月底,财务月结,需要关账,关闭物料移动功能,支持财务对账: 其中一项任务是要锁定物料移动tcode,这应该是其中部分: CO27 PPIOM000 1000 拣配清单MB1A SAPMM07M 400 ...
- Validform:一行代码搞定整站的表单验证!
表单验证不再发愁,http://validform.rjboy.cn/
- Makefile---make内嵌函数及make命令显示 (九)
原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 这一节我们讲一下make的函数,在之前的章节已经讲到了几个函数:wildcard.patsubs ...
- java for each 错误
简而言之,for each 适用于不改变数组,容器元素的场合,如果改变,必须用索引或者iterator. 例如: A[] arrayA = new A[5]; for (A a : arrayA) { ...
- N皇后回溯解法 leetcode N-Queens
class Solution { public: vector<vector<string> > solveNQueens(int n) { vector<vector& ...
- hdu1074 状压DP、栈实现记录路径
题意:给了几门学科作业.它们的截止提交期限(天数).它们的需要完成的时间(天数),每项作业在截止日期后每拖延一天扣一学分,算最少扣的学分和其完成顺序. 一开始做的时候,只是听说过状态压缩这个神奇的东西 ...
- Java Web学习(1): 客户端请求、服务器响应及其HTTP状态码
一JSP客户端请求 当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信 息头的一部分来传送的.我们可以查阅HTTP协议来获得更多的信息. 下表列出了浏 ...
- java多线程:jdk并发包的总结(转载)
转载地址:http://blog.csdn.net/yangbutao/article/details/8479520 1.java 高并发包所采用的几个机制(CAS,volatile,抽象队列同步) ...
- 二十四种设计模式:提供者模式(Provider Pattern)
提供者模式(Provider Pattern) 介绍为一个API进行定义和实现的分离.示例有一个Message实体类,对它的操作有Insert()和Get()方法,持久化数据在SqlServer数据库 ...