挺水的题...好多题解说是对偶图,其实感觉不能算严格意义上的对偶图吧QAQ

  先二分答案r,然后以boss为中心半径为r的圆不能走,求能否从左下走到右上。

  不能从左下走到右上,说明这堆圆把图隔开了,于是把圆看成点,如果两个圆有重合部分就连边,左上两条边界看成S,右下两条边界看成T,如果连边后S和T连通说明无法从左下走到右上,没了...

#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn=, inf=1e9;
int n, N, M, S, T, tot, front, rear;
int x[maxn], y[maxn], h[maxn], d[maxn][maxn], fa[maxn];
bool v[maxn];
inline void read(int &k)
{
int f=; k=; char c=getchar();
while(c<'' || c>'') c=='-' && (f=-), c=getchar();
while(c<='' && c>='') k=k*+c-'', c=getchar();
k*=f;
}
inline int sqr(int x) {return x*x;}
inline int dis(int a, int b) {return 1ll*sqr(abs(x[a]-x[b]))+sqr(abs(y[a]-y[b]));}
int gf(int x){return fa[x]==x?x:fa[x]=gf(fa[x]);}
inline bool check(double r)
{
for(int i=S;i<=T;i++) fa[i]=i;
for(int i=;i<=n;i++)
{
if(-(1e-)<1.0+r-x[i] || y[i]+r-M>-(1e-)) fa[gf(S)]=gf(i);
if(x[i]+r-N>-(1e-) || -(1e-)<1.0+r-y[i]) fa[gf(T)]=gf(i);
}
if(gf(S)==gf(T)) return ;
for(int i=;i<=n;i++)
for(int j=;j<i;j++)
if(4ll*r*r>d[i][j])
{
fa[gf(i)]=gf(j);
if(gf(S)==gf(T)) return ;
}
return ;
}
int main()
{
read(n); read(N); read(M); S=; T=n+;
for(int i=;i<=n;i++) read(x[i]), read(y[i]);
for(int i=;i<=n;i++)
for(int j=;j<i;j++)
d[i][j]=d[j][i]=dis(i, j);
double l=, r=min(N-, M-);
while(r-l>1e-)
{
double mid=(l+r)/;
if(check(mid)) l=mid;
else r=mid;
}
printf("%.2lf\n", l);
}

  还有就是完全可以不用二分,直接按边长度从小到大加入,当加入到S和T连通的时候当前边的长度-eps就是答案了。。。但是大概得写prim才能到N^2,不然kruskal比上面做法可能快不了多少,我不会prim就不写了QAQ

  加强版需要三角剖分...不会.jpg

bzoj3007: 拯救小云公主(二分+并查集)的更多相关文章

  1. BZOJ 3007 [SDOI2012]拯救小云公主 - 对偶图 + 并查集

    Solution 答案具有单调性, 显然可以二分答案. 有两个注意点 : 英雄是可以随便走的, 也就是不是网格图... 还有坐标不能小于$1$ QAQ 开始时英雄在左下角, 公主在右上角, 我们反过来 ...

  2. 【BZOJ3007】拯救小云公主 二分+几何+对偶图

    [BZOJ3007]拯救小云公主 Description     英雄又即将踏上拯救公主的道路……     这次的拯救目标是——爱和正义的小云公主.     英雄来到boss的洞穴门口,他一下子就懵了 ...

  3. 【bzoj3007】拯救小云公主 二分+对偶图+并查集

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

  4. bzoj3007: 拯救小云公主

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

  5. 洛谷 P2498 [SDOI2012]拯救小云公主 解题报告

    P2498 [SDOI2012]拯救小云公主 题目描述 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到\(boss\)的洞穴门口,他一下子就懵了,因为面前不只是一 ...

  6. 【BZOJ】【3007】拯救小云公主

    思路题 我的naive的做法是二分答案+判定是否有路径可走……但是没有正确理解[走的方向任意]这句话…… 其实就是说想咋走咋走= =360°无死角乱走…… 所以其实是个平面上的问题…… 我们可以换个方 ...

  7. BZOJ:4219: 跑得比谁都快 3007: 拯救小云公主

    4219: 跑得比谁都快 3007: 拯救小云公主 三角剖分的解释可以看这里:http://www.cnblogs.com/Enceladus/p/6706444.html 后一道是前一道的弱化版. ...

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

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

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

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

随机推荐

  1. pytest使用笔记(三)——pytest+allure+jenkins配置使用

    按照pytest使用笔记(二)把pytest+allure配置好后,现在在jenkins配置好,先实现手动构建(立个小目标) 一,安装jenkins插件 首页->系统管理->插件管理,从“ ...

  2. GitHub 多人协作开发 三种方式:

    GitHub 多人协作开发 三种方式: 一.Fork 方式 网上介绍比较多的方式(比较大型的开源项目,比如cocos2d-x) 开发者 fork 自己生成一个独立的分支,跟主分支完全独立,pull代码 ...

  3. 小白初识 - 快速排序(QuickSort)

    我个人觉得快速排序和归并排序有相似之处,都是用到了分治的思想,将大问题拆分成若干个小问题. 不同的地方是归并排序是先把大问题拆分好了之后再排序,而快速排序则是一边拆分,一边排序. 快速排序的原理就是, ...

  4. ES6的新特性(18)——async 函数

    async 函数 含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便. async 函数是什么?一句话,它就是 Generator 函数的语法糖. 前文有一个 Generato ...

  5. Java:有关try、catch和finally的学习(供自己参考)

    Java:有关try.catch和finally的学习 在看到书本的时候对finally的介绍是:不论是否在try块中产生异常,都会执行finally.当时对这句话的理解不够深,误以为在try...c ...

  6. 人生苦短,我用Python!

    一.程序分析 1.读取文件到缓冲区 def process_file(): # 读文件到缓冲区 try: # 打开文件 f = open("C:\\Users\\panbo\\Desktop ...

  7. P4tutorial实战

    Tutorial样例实战 GitHub仓库地址 参考博客 实验一:SIGCOMM_2015/Sourse_Routing 实验环境: OS:Ubuntu16.04 bmv2:behavioral-mo ...

  8. Alpha冲刺——第九天

    Alpha第九天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...

  9. 我是一只IT小小鸟观后感

    知道有这么一本写“码农”经历的书,是在大一下学期的第一堂职业生涯规划课上.也是抱着蛮看一看的心态在某宝上买了印刷版的开始抱着“啃”. 看了之后还是很有感触的,首先虽然现在我们是大学的软件学院中读书,但 ...

  10. lintcode-445-余弦相似度

    445-余弦相似度 Cosine similarity is a measure of similarity between two vectors of an inner product space ...