当前位置: 首页 > news >正文

题解:洛谷 P1661 扩散

【题目来源】

洛谷:P1661 扩散 - 洛谷

【题目描述】

一个点每过一个单位时间就会向四个方向扩散一个距离,如图。

image

两个点 \(a\)\(b\) 连通,记作 \(e(a,b)\),当且仅当 \(a,b\) 的扩散区域有公共部分。连通块的定义是块内的任意两个点 \(u,v\) 都必定存在路径 \(e(u,a_0),e(a_0,a_1),\cdots,e(a_k,v)\)。给定平面上的 \(n\) 个点,问最早什么时刻它们形成一个连通块。

【输入】

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

【输出】

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

【输入样例】

2
1 1
6 6

【输出样例】

5

【算法标签】

《洛谷 P1661 扩散》 #图论# #树形数据结构# #二分# #并查集# #生成树#

【代码详解】

#include <bits/stdc++.h>
using namespace std;
const int N = 55;int n, p[N];
struct Node
{int x, y;
} a[N];// 并查集查找操作
int find(int x)
{if (p[x] != x){p[x] = find(p[x]);}return p[x];
}// 检查是否能在半径为x的范围内建立连接,使所有点连通
bool check(int x)
{for (int i = 1; i <= n; i++){p[i] = i;  // 初始化并查集}for (int i = 1; i <= n; i++){for (int j = 1; j <= n; j++){if (i == j){continue;}// 计算曼哈顿距离int dist = (abs(a[i].x - a[j].x) + abs(a[i].y - a[j].y));// 如果两个点之间的距离不超过2x,可以建立连接if (dist <= x * 2){int a = find(i), b = find(j);if (a != b){p[a] = b;  // 合并连通块}}}}int root = find(1);// 检查是否所有点都在同一个连通块中for (int i = 2; i <= n; i++){if (find(i) != root){return false;}}return true;
}int main()
{cin >> n;for (int i = 1; i <= n; i++){cin >> a[i].x >> a[i].y;}// 二分查找最小的半径xint l = 0, r = 1e9;while (l < r){int mid = (l + r) / 2;if (check(mid)){r = mid;  // 满足条件,尝试更小的半径}else{l = mid + 1;  // 不满足条件,需要更大的半径}}cout << l << endl;return 0;
}

【运行结果】

2
1 1
6 6
5
http://www.jsqmd.com/news/522108/

相关文章:

  • 2026年地标发光字厂家推荐:郑州唯美标识设计制作有限公司,城市地标字/地标立体字/地标迷你发光字厂家精选 - 品牌推荐官
  • 盘点编织袋自动切缝机品牌,哪家口碑好且价格合理? - mypinpai
  • 电声元器件厂商哪家性价比高,在惠州地区能找到吗? - mypinpai
  • 2026CRM系统排行榜:10大主流品牌全链路能力深度横评 - jfjfkk-
  • 贵州钢丝网骨架管哪家好?5大源头厂家推荐及工程适配方案 - 深度智识库
  • 线上回收全攻略:如何把万爱通礼品卡发挥价值! - 团团收购物卡回收
  • 2026年电声元器件厂商推荐,好用的品牌大盘点 - 工业品牌热点
  • 2026年船舶监控相机厂家推荐:常州市佐安电器有限公司,海事监控相机/阻尼摄像仪/防爆拾音器厂家精选 - 品牌推荐官
  • 防脱头皮精华推荐,强根健发,重塑自信 - 博客万
  • 2026年AR钢化膜厂最新推荐榜单:高端消费电子防护领域技术引领者深度测评 - 博客湾
  • 中老年驼奶粉十大品牌盘点,2026适合长辈的营养品牌汇总 - 博客万
  • 上海修表地址怎么选?从百达翡丽到欧米茄,高端腕表维修的专业标准与北上广深杭宁六城服务网络深度解析 - 时光修表匠
  • navicat查询历史执行语句
  • kafka3.9集群部署
  • 参考文档名称 - a
  • 上门收酒怕信息外传?京城亚南酒业:全程匿名交易,隐私全程兜底 - 品牌排行榜单
  • VSCode+GitHub新手必看:5分钟搞定代码上传(附.gitignore配置技巧)
  • 支付宝立减金回收指南:领取立减金,线上回收超简单! - 团团收购物卡回收
  • NetApp NVME SSD 盘的学习笔记
  • 北京洗油推荐:从百达翡丽到欧米茄,高端腕表机芯养护的周期、费用与北上广深杭宁六城服务深度解析 - 时光修表匠
  • 网眼袋圆织机价格受哪些因素影响,大概多少钱? - 工业设备
  • 防脱发精华 哪个好?2026年终极推荐指南 - 博客万
  • 探寻2026年实验室密炼机厂家:性价比、口碑、售后全都要! - 品牌推荐大师
  • 注入自定义so时SELinux安全限制
  • 深入理解 Linux 共享库版本命名机制:SRE 与开发者的必修课
  • 手把手教你用W25Q64 SPI Flash扩展LVGL显示空间(附FatFs移植避坑指南)
  • 藏家必看!上门收酒如何保护隐私?京城亚南酒业给你标准答案 - 品牌排行榜单
  • 家庭隐私不可侵!京城亚南酒业上门收酒,绝不打扰家人、不泄露家事 - 品牌排行榜单
  • 黄精品牌哪个好?高纯度黄精用户首选,避开劣质款黄精 - 博客万
  • WAN2.2文生视频镜像合规性指南:生成内容版权规避+敏感词过滤模块集成