http://www.elijahqi.win/archives/3705
Description
英雄又即将踏上拯救公主的道路……
这次的拯救目标是——爱和正义的小云公主。
英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss。当英雄意识到自己还是等级1的时候,他明白这就是一个不可能完成的任务。
但他不死心,他在想,能不能避开boss去拯救公主呢,嘻嘻。
Boss的洞穴可以看成一个矩形,英雄在左下角(1,1),公主在右上角(row,line)。英雄为了避开boss,当然是离boss距离越远越好了,所以英雄决定找一条路径使到距离boss的最短距离最远。
Ps:英雄走的方向是任意的。
你可以帮帮他吗?
当英雄找到了美丽漂亮的小云公主,立刻就被boss包围了!!!英雄缓闭双眼,举手轻挥,白光一闪后使用了回城卷轴,回到了城堡,但只有小云公主回去了……因为英雄忘了进入回城的法阵了。

Input
第一行,输入三个整数,n表示boss的数目,row,line表示矩形的大小;
接下来n行,每行分别两个整数表示boss的位置坐标。

Output
输出一个小数,表示英雄的路径离boss的最远距离,精确到小数点后两位。

Sample Input
1 3 3
2 2
输出样例1:
1.00

输入样例2:
1 3 3
3 1

输出样例2:
2.00

Sample Output

HINT
100%数据,n<=3000;

通过画图考虑如何会困住英雄

https://images2015.cnblogs.com/blog/892758/201702/892758-20170219220003035-752215202.png

然后像noip2017 奶酪一样二分答案直接并查集就可以 或者bfs什么都可以

#include<cmath>
#include<cstdio>
#include<cctype>
#include<algorithm>
#define eps 1e-3
using namespace std;
inline char gc(){static char now[1<<16],*S,*T;if (T==S){T=(S=now)+fread(now,1,1<<16,stdin);if (T==S) return EOF;}return *S++;
}
inline int read(){int x=0,f=1;char ch=gc();while(!isdigit(ch)) {if (ch=='-') f=-1;ch=gc();}while(isdigit(ch)) x=x*10+ch-'0',ch=gc();return x*f;
}
const int N=3e3+10;
int fa[N],n,line,row;double x[N],y[N];
inline int find(int x){while(x!=fa[x]) x=fa[x]=fa[fa[x]];return x;
}
inline void merge(int x,int y){if (find(x)!=find(y)) fa[find(x)]=find(y);
}
inline double sqr(double x){return x*x;}
inline bool check(double mid){for (int i=1;i<=n;++i){if (mid>=row-x[i]||mid>=y[i]-1) merge(0,i);if (mid>=x[i]-1||mid>=line-y[i]) merge(i,n+1);for (int j=1;j<i;++j){if (find(i)==find(j)) continue;if (sqr(x[i]-x[j])+sqr(y[i]-y[j])<=4*mid*mid) merge(i,j);}}return find(0)==find(n+1);
}
int main(){freopen("bzoj3007.in","r",stdin);n=read();row=read();line=read();for (int i=1;i<=n;++i) x[i]=read(),y[i]=read();double l=0,r=min(row,line);while(fabs(r-l)>eps){for (int i=0;i<=n+1;++i) fa[i]=i;double mid=(l+r)/2;if(check(mid)) r=mid;else l=mid;}printf("%.2f\n",r);return 0;
}

bzoj 3007 拯救小云公主相关推荐

  1. BZOJ 3007: 拯救小云公主

    Description 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意 ...

  2. 【BZOJ】3007 拯救小云公主 最短路径

    题目传送门 题目大意:给定一个矩形和矩形内一些点,求一条左上角到右下角的路径,使所有点和矩形边界到这条路径的最小距离最大. 解法1:最小距离最大,想到二分,然后题目就转化成:矩形内有一些圆形障碍,问左 ...

  3. bzoj3007 拯救小云公主

    3007: 拯救小云公主 Time Limit: 5 Sec   Memory Limit: 512 MB Submit: 159   Solved: 71 [ Submit][ Status][ D ...

  4. P2498 [SDOI2012]拯救小云公主

    P2498 [SDOI2012]拯救小云公主 题意: 一个row * line的矩形,英雄在左下角(1,1),公主在右上角(row,line),有n个位置是boss.英雄现在要去公主那里,但是要避开b ...

  5. 二分+并查集【bzoj3007】[SDOI2012]拯救小云公主

    Description 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意 ...

  6. [SDOI2012]拯救小云公主

    题目 题目描述 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意识到自己 ...

  7. 洛谷P2498 [SDOI2012]拯救小云公主 【二分 + 并查集】

    题目 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意识到自己还是等级1 ...

  8. [SDOI2012]拯救小云公主【bfs+二分答案】

    题目链接 正难则反. 要直接求从起点到终点的最大距离,不妨反过来求最小的可以阻止骑士从起点到终点的对于全体圆的最小半径. 那么,就是阻止从左上角到右下角的所有相交圆,于是,就是要变成没有从左上角到右下 ...

  9. [luogu] P2498 [SDOI2012]拯救小云公主 二分答案+bfs

    前言 以为二分的是人到BOOS的距离 没想到可以直接二分BOOS的攻击距离 传送门 : 思路 BFS待研究 CODE typedef pair<int,int> pii; map<i ...

最新文章

  1. Java获取Mybatis动态生成的sql
  2. 5月“.公司”域名注册总量TOP15:西部数码第四
  3. Msg3最大传输次数(maxHARQ-Msg3Tx)
  4. RabbitMQ入门-队列
  5. 牛客题霸 [ 孩子们的游戏] C++题解/答案
  6. mysql8.0递归_mysql8.0版本递归查询
  7. SharePoint Permission中6个表的关联关系**
  8. 打印机测试图_INTAMSYS高温PEEK 3D打印机助力智能组件创新制造
  9. tftp服务器从交换机上下载配置命令_软考网络工程师之交换机和路由(交换机基础)...
  10. 7-188 编程团体赛 (20 分)
  11. php两个编辑框一个提交按钮,一个表单中的两个提交按钮
  12. 浅谈assert()函数的用法
  13. [CareerCup] 12.6 Test an ATM 测试一个自动取款机
  14. BZOJ3637 Query on a tree VI
  15. 无法连接终端授权服务器,许可证已过期的客户端可能无法连接到终端服务器的解决方案...
  16. python----------基于TCP的交互式游戏设计
  17. C语言练习之输入x输出y
  18. [UE4笔记] 根据日期判断该天是周几
  19. 1139: 神奇的fans
  20. Hoeffding不等式简介

热门文章

  1. PEP8中文翻译(转)
  2. gif动态图怎么制作?gif动态图在线制作一键搞定
  3. 解决unix:///var/run/supervisor/supervisor.sock no such file问题
  4. 分糖果 小明从糖果盒中
  5. FLV视频转换的利器 - ffmpeg.exe
  6. C# Socket客户端采用双线程断网重连断线重连)
  7. r2000s_昭阳R2000S笔记本一键重装win7系统教程
  8. 情侣相处最佳模式(转)
  9. 我的世界服务器领地系统,[综合|安全|经济|传送]Residence —— 领地保护(圈地)[1.4.7-1.8.8]...
  10. 口袋之旅html5超强账号,口袋之旅好号和密码