题目描述

一个点每过一个单位时间就会向 4 个方向扩散一个距离,如图所示:两个点 a 、b 连通,记作 e(a,b),当且仅当 a 、b 的扩散区域有公共部分。连通块的定义是块内的任意两个点 u、v都必定存在路径

给定平面上的 n 个点,问最早什么时候它们形成一个连通块。

输入格式

第一行一个数 n ,以下 n 行,每行一个点坐标。

输出格式

输出仅一个数,表示最早的时刻所有点形成连通块。

样例

样例输入

2
0 0
5 5

样例输出

5

数据范围与提示

对于 20% 的数据,满足 1≤n≤5,1≤Xi,Yi≤50​i​​,Y​i​​≤50;

对于 100% 的数据,满足 1≤n≤50,1≤Xi,Yi≤10^9

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn = 52;
int G[maxn][maxn], n, xx[maxn], yy[maxn];
inline void init(int x){for(int i=1; i<=n; ++i){for(int j=1; j<=n; ++j)G[i][j] = 0;G[i][i] = 1;}for(int i=1; i<=n; ++i)for(int j=1; j<=n; ++j)if(abs(xx[i] - xx[j]) + abs(yy[i] - yy[j]) <= x << 1)G[i][j] = 1;
}
inline void floyd(){for(int k=1; k<=n; ++k)for(int i=1; i<=n; ++i)for(int j=1; j<=n; ++j)if(G[i][k] && G[k][j])G[i][j] = 1;
}
inline bool deal(int x){init(x);floyd();int judge = 1;for(int i=1; i<=n; i++)    judge &= G[1][i];return judge;
}
int main(void)
{cin >> n;for(int i=1; i<=n; ++i)cin >> xx[i] >> yy[i];        int l = 1, r = 1000000000;while(l < r){int mid = (l + r) >> 1;if(deal(mid))    r = mid;else            l = mid + 1;        }    cout << l << endl;
}

思路

  二分+连边建图+floyd

i​​,Y​i​​≤10​9​​。

转载于:https://www.cnblogs.com/junk-yao-blog/p/9469974.html

「一本通 1.2 练习 2」扩散(loj10015)相关推荐

  1. 「一本通 6.5 练习 3」迷路

    「一本通 6.5 练习 3」迷路 题目描述 大意说一个给你有向图, 一个有n个节点,每个节点相连的边为所需要花费的时间, 问你从1到n 在时间刚好为t是的方案数.输出%2009 注意:不能在某个节点逗 ...

  2. 【C++】「一本通 1.1 例 4」加工生产调度

    「一本通 1.1 例 4」加工生产调度 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [数据范围] [解析] [代码] [来源] 一本通题库-1425 LibreOJ ...

  3. LibreOJ10082. 「一本通 3.3 例 1」Word Rings【二分+SPFA】

    10082. 「一本通 3.3 例 1」Word Rings [题目描述] 传送门 [题解] 将一个字符串看成一条边,字符两端的字符看成节点,长度看成权值.二分枚举答案,最后SPFA刷正环,因为只要有 ...

  4. #10016. 「一本通 1.2 练习 3」灯泡(三分)

    参考博客链接:「一本通 1.2 练习 3」灯泡(三分) #include<stdio.h> #include<string.h> #include<math.h> ...

  5. 【C++】「一本通 1.1 例 2」种树

    「一本通 1.1 例 2」种树 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [解析] [代码] [来源] 一本通题库-1423 LibreOJ-10001 vjud ...

  6. #10001. 「一本通 1.1 例 2」种树

    #10001. 「一本通 1.1 例 2」种树 满足n个区间种树的要求,求最少种多少棵数 思路 按照区间的尾巴来排序,因为如果区间有重叠的种在第一个区间的尾巴可以使得种树更少,所有每次始从尾巴开始种树 ...

  7. 【C++】「一本通 1.1 例 5」智力大冲浪

    「一本通 1.1 例 5」智力大冲浪 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [数据范围] [解析] [代码] [来源] 一本通题库-1426 LibreOJ- ...

  8. 「一本通 1.2 例 2」Best Cow Fences

    题目链接: 链接: [link](信息学奥赛一本通(C++版)在线评测系统). 首先这道题要求找平均数,且要求所选片段长度需要大于等于l.那么首先想到的就是最暴力的方法就是找到所有大于等于l的片段在其 ...

  9. LOJ #10222. 「一本通 6.5 例 4」佳佳的 Fibonacci

    题目链接 题目大意 $$F[i]=F[i-1]+F[i-2]\ (\ F[1]=1\ ,\ F[2]=1\ )$$ $$T[i]=F[1]+2F[2]+3F[3]+...+nF[n]$$ 求$T[n] ...

  10. loj.ac:#10024. 「一本通 1.3 练习 3」质数方阵

    CSDN的博客 友键 题目描述 质数方阵是一个\(5×5\)的方阵,每行.每列.两条对角线上的数字可以看作是五位的素数.方格中的行按照从左到右的顺序组成一个素数,而列按照从上到下的顺序.两条对角线也是 ...

最新文章

  1. vtbl 什么时候被改写
  2. 软件需求规格说明书通用模版_通用需求挑战和机遇
  3. .net微信公众号开发——基础接口
  4. mysql查询表的列名主键_Oracle中查看所有的表,用户表,列名,主键,外键
  5. POJ:3461-Oulipo(KMP模板题)
  6. 正则双重过滤 /// splitKey1 第一个正则式匹配 /// splitKey2 匹配结果中再次匹配进行替...
  7. Flutter进阶—使用自定义字体
  8. 字节实习生开发的 AI 竟然被网友用在了王冰冰身上!
  9. 多线激光雷达遇到的问题
  10. sql 二进制文件的导入导出
  11. OpenDDS环境搭建-Windows 10
  12. 浮点数取绝对值的方法
  13. Android原生开发饱和后,为什么还有这么多人没转行?,渣本Android开发小伙如何一步步成为架构师
  14. Emlog大表哥资源网模板
  15. OS - freeRTOS vs Linux
  16. 软考5个高级中哪个好考
  17. 动画设计基础(第三节)-3d max2014 裙摆(单向摆动)
  18. 无线通信sip服务器常用品牌,一种无线Mesh网中多SIP服务器布局方法
  19. xxl-job 定时任务简单使用
  20. frontpage怎么设置html5,怎么在Frontpage中运用css设置网页字体

热门文章

  1. CTF MISC(杂项)知识点总结——图片类(一)
  2. linux终端反引号怎么使用,Linux 反引号 的作用
  3. ID3、C4.5决策树算法的Python实现(注释详细)
  4. 温度转换python代码解释_python温度转换代码
  5. IDEA使用ideaVim, 配置自定义vim快捷键
  6. 《解读基金》 基金中统计指标含义-平均回报、标准差、夏普比率、阿尔法系数、贝塔系数、R平方
  7. MongoDB ODM
  8. java 获取某一日期的0点0分0秒和23点59分59秒
  9. 将指定小程序页面设置为首页的两种方式
  10. matlab中Current Folder的修改