「一本通 1.2 练习 2」扩散(loj10015)
题目描述
一个点每过一个单位时间就会向 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≤50i,Yi≤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,Yi≤109。
转载于:https://www.cnblogs.com/junk-yao-blog/p/9469974.html
「一本通 1.2 练习 2」扩散(loj10015)相关推荐
- 「一本通 6.5 练习 3」迷路
「一本通 6.5 练习 3」迷路 题目描述 大意说一个给你有向图, 一个有n个节点,每个节点相连的边为所需要花费的时间, 问你从1到n 在时间刚好为t是的方案数.输出%2009 注意:不能在某个节点逗 ...
- 【C++】「一本通 1.1 例 4」加工生产调度
「一本通 1.1 例 4」加工生产调度 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [数据范围] [解析] [代码] [来源] 一本通题库-1425 LibreOJ ...
- LibreOJ10082. 「一本通 3.3 例 1」Word Rings【二分+SPFA】
10082. 「一本通 3.3 例 1」Word Rings [题目描述] 传送门 [题解] 将一个字符串看成一条边,字符两端的字符看成节点,长度看成权值.二分枚举答案,最后SPFA刷正环,因为只要有 ...
- #10016. 「一本通 1.2 练习 3」灯泡(三分)
参考博客链接:「一本通 1.2 练习 3」灯泡(三分) #include<stdio.h> #include<string.h> #include<math.h> ...
- 【C++】「一本通 1.1 例 2」种树
「一本通 1.1 例 2」种树 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [解析] [代码] [来源] 一本通题库-1423 LibreOJ-10001 vjud ...
- #10001. 「一本通 1.1 例 2」种树
#10001. 「一本通 1.1 例 2」种树 满足n个区间种树的要求,求最少种多少棵数 思路 按照区间的尾巴来排序,因为如果区间有重叠的种在第一个区间的尾巴可以使得种树更少,所有每次始从尾巴开始种树 ...
- 【C++】「一本通 1.1 例 5」智力大冲浪
「一本通 1.1 例 5」智力大冲浪 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [数据范围] [解析] [代码] [来源] 一本通题库-1426 LibreOJ- ...
- 「一本通 1.2 例 2」Best Cow Fences
题目链接: 链接: [link](信息学奥赛一本通(C++版)在线评测系统). 首先这道题要求找平均数,且要求所选片段长度需要大于等于l.那么首先想到的就是最暴力的方法就是找到所有大于等于l的片段在其 ...
- 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] ...
- loj.ac:#10024. 「一本通 1.3 练习 3」质数方阵
CSDN的博客 友键 题目描述 质数方阵是一个\(5×5\)的方阵,每行.每列.两条对角线上的数字可以看作是五位的素数.方格中的行按照从左到右的顺序组成一个素数,而列按照从上到下的顺序.两条对角线也是 ...
最新文章
- vtbl 什么时候被改写
- 软件需求规格说明书通用模版_通用需求挑战和机遇
- .net微信公众号开发——基础接口
- mysql查询表的列名主键_Oracle中查看所有的表,用户表,列名,主键,外键
- POJ:3461-Oulipo(KMP模板题)
- 正则双重过滤 /// splitKey1 第一个正则式匹配 /// splitKey2 匹配结果中再次匹配进行替...
- Flutter进阶—使用自定义字体
- 字节实习生开发的 AI 竟然被网友用在了王冰冰身上!
- 多线激光雷达遇到的问题
- sql 二进制文件的导入导出
- OpenDDS环境搭建-Windows 10
- 浮点数取绝对值的方法
- Android原生开发饱和后,为什么还有这么多人没转行?,渣本Android开发小伙如何一步步成为架构师
- Emlog大表哥资源网模板
- OS - freeRTOS vs Linux
- 软考5个高级中哪个好考
- 动画设计基础(第三节)-3d max2014 裙摆(单向摆动)
- 无线通信sip服务器常用品牌,一种无线Mesh网中多SIP服务器布局方法
- xxl-job 定时任务简单使用
- frontpage怎么设置html5,怎么在Frontpage中运用css设置网页字体