扩散题解

2023-05-16

1.【题目描述】:

一个点每过一个单位时间就会向四个方向扩散一个距离,如图。
在这里插入图片描述
两个点a、b连通,记作e(a,b),当且仅当a、b的扩散区域有公共部分。连通块的定义是块内的任意两个点u、v都必定存在路径e(u,a0),e(a0,a1),…,e(ak,v)。给定平面上的n给点,问最早什么时刻它们形成一个连通块。

【输入】

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

【输出】

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

【输入样例】

2
0 0
5 5

【输出样例】

5

2.解析:

首先我们要明白此点距离与时间的关系,不难发现此距离即为点到原点的曼哈顿距离(读者自证),所以我们只需枚举时间,让其时间满足其时间>=曼哈顿距离即可。读者需要注意,两点的距离最远不会超过2倍时间,否则将不被满足联通,这很好理解:因为最极端的情况即为两点对立,且点到原点距离为最大时间,此时距离为2*时间。
知道以上几点我们不难想到用二分枚举时间,求出最小时间且满足距离不会超过2倍时间,值得一提的是这里可以用并查集来联通,当然也可以定义一个标记数组来做,如:

int step = 0, sum = 1, flag[1005] = { };
	b[1] = 1;
	flag[1] = 1;
	while(step != sum) {//当等于是即有一组不满足跳出
		step++;
		for(int i = 1;i <= n; i++) {
			if(flag[i]) {//若被判断了就不管了
				continue;
			}
			if(m[b[step]][i] <= 2 * s) {
				flag[i] = 1;
				b[++sum] = i;
			}
		}
	}

3.代码:

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int n, m[1005][1005], b[1005];

struct jj{
	int x, y;	
}a[10005];

void manhadun() {
	for(int i = 1;i < n; i++) {
		for(int j = i + 1;j <= n; j++) {
			m[j][i] = m[i][j] = abs(a[i].x - a[j].x) + abs(a[i].y - a[j].y);
		}
	}
}

int cheak(long long s) {	
	int step = 0, sum = 1, flag[1005] = { };
	b[1] = 1;
	flag[1] = 1;
	while(step < sum) {
		step++;
		for(int i = 1;i <= n; i++) {
			if(flag[i]) {
				continue;
			}
			if(m[b[step]][i] <= 2 * s) {
				flag[i] = 1;
				b[++sum] = i;
			}
		}
	}

	return sum == n;
}

int main() {
	scanf("%d", &n);
	for(int i = 1;i <= n; i++) {
		scanf("%d %d", &a[i].x, &a[i].y);
	}
	manhadun();
	int l = 0, r = 1e9 + 5, mid, k;
	while(l <= r) {
		mid = l + ((r - l) / 2);
		if(cheak(mid)) {
			r = mid - 1;
		}
		else{
			l = mid + 1;
		}
	}
	printf("%d", l);
	return 0;
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

扩散题解 的相关文章

  • Debian6.0.7的archive mirror列表真接地气

    为什么80 的码农都做不了架构师 xff1f gt gt gt 转载于 https my oschina net cers blog 111135
  • 05-03-通过组策略(域)配置加域客户端补丁自动更新

    系统工程师实战培训 05 部署补丁管理服务器 03 通过组策略 域 配置加域客户端补丁 自动更新 作者 xff1a 学 无 止 境 QQ交流群 xff1a 454544014 在100 Admin01上安装 组策略 管理工具 创建完成后 x
  • sql server 2016 json 解析方法

    前几天发现了sql server 2016支持了json 项目需要所以安装了 用了一下 方便了很多 xff0c 写一下小笔记方便日后查看 xff0c 也希望各位大神指正共同学习 sql server 2016 安装图解网上很多 xff0c
  • Windows Server 系列服务器之轻松修改远程端口

    Windows系列的服务器 xff0c 远程端口号默认的是3389 xff0c 当然 xff0c 一些服务器服务商可能会是其他的端口 在生产环境中 xff0c 对于服务器安全来讲 修改远程端口和屏蔽一些不用的端口是非常有必要的 在安装好服务
  • 使用组策略进行软件升级

    使用组策略进行软件升级 升级包括强制升级和可选升级 xff0c 强制升级就是强制用户卸载已经安装的旧版本软件 xff0c 安装新版软件 可选升级就是保留旧版本的情况下安装新版本 本示例演示强制升级部署给用户的画图软件 任务 xff1a u
  • Linux查看系统上的时间和日期

    大家好 xff0c 本篇博客介绍了两个关于Linux里的时间和日期的命令 xff0c 有些内容是我自己翻译的 xff0c 如果有不足 xff0c 还望读者多多指教 本篇博客的符号说明 xff1a 里的值都不是固定的 xff0c 而不是可选的
  • pytest文档27-pytest分布式执行(pytest-xdist)

    前言 平常我们手工测试用例非常多时 xff0c 比如有1千条用例 xff0c 假设每个用例执行需要1分钟 如果一个测试人员执行需要1000分钟才能执行完 xff0c 当项目非常紧急的时候 xff0c 我们会用测试人力成本换取时间成本 xff
  • 五一学习计划

    hhhhhhhhhhh 来了11111111111111111111111111111111111111111111111111111111111111111111111 555 4444 66 77 88 99 00 标题1 标题2 标题
  • linux脚本执行进度条,shell脚本实现进度条

    使用shell脚本编写进度条 可已加入到shell脚本当中 主要作用 xff1a 好看 美观 没毛用 一 普通进度条 xff1a bin bash b 61 39 39 for i 61 0 i lt 61 20 i 43 43 do le
  • mysql单表调整大小_MySQL单表大小问题

    在老版本的MySQL 3 22中 xff0c MySQL的单表限大小为4GB xff0c 当时的MySQL的存储引擎还是ISAM存储引擎 但是 xff0c 当出现MyISAM存储引擎之后 xff0c 也就是从MySQL 3 23开始 xff
  • AC日记——简单密码 openjudge 1.7 10

    10 简单密码 总时间限制 1000ms 内存限制 65536kB 描述 Julius Caesar曾经使用过一种很简单的密码 对于明文中的每个字符 xff0c 将它用它字母表中后5位对应的字符来代替 xff0c 这样就得到了密文 比如字符
  • 触摸事件 - UIControlEvents

    首先 xff0c UIControlEvents有这个几种 xff1a UIControlEventTouchDown 61 1 lt lt 0 on all touch downs UIControlEventTouchDownRepea
  • PyCharm+cmd中使用Anaconda 与 新建Python环境(Windows)

    PyCharm配置Anaconda Anaconda的安装在网上已经有了 xff0c 这里主要讲之前已经安装了已经配置好Python环境变量以及PyCharm的情况下 使用Anaconda 即在PyCharm中出现了 ModuleNotFo
  • 00018计算机应用基础知识点归纳,自考00018计算机应用基础汇总资料

    A 这些文件目前均处于打开状态 B 这些文件正在排队等待打印 C 这些文件最近用Word处理过 D 这些文件是当前目录中扩展名为DOT和文件 62 在Word中 xff0c 移动光标到文件尾的快捷键组合是 A Ctrl 43 PgDn B
  • 给Debian安装Xfce桌面

    1 sudo apt get install xorg xdm xfce4 2 vi xinitrc xff0c 然后输入 xff1a exec xfce4 xff0c 在终端输入startx命令后就能进入xfce4 xff0c 或直接在终
  • python七段数码管的详解,Python入门基础:七段数码管绘制

    1 在学习Python的过程中 xff0c 运用所学的一些基础知识 xff0c 进行一些简单的编程 xff0c 可以收获很多乐趣 在生活中 xff0c LED灯无处不在 xff0c 荧幕显示的广告词 xff0c 给我们呈现出动态的视觉效果
  • 锐捷和华为重分布实验

    锐捷 华为路由重分布实验 实训目的 xff08 1 xff09 熟悉路由器的基本配置 xff1b xff08 2 xff09 掌握路由重分布配置 实训技术原理 为了实现全网互通 xff0c 我们需要路由器能在不同协议之间交换路由信息或者全网
  • md编辑器活动

    312313 4142131323131313 545465645
  • app.jsNodejs启动测试服务

    39 use strict 39 var express 61 require 39 express 39 var app 61 express 39 39 var fs 61 require 39 fs 39 app get 39 dat

随机推荐

  • python之zip打包

    import zipfile 压缩 z 61 zipfile ZipFile 39 z zip 39 39 w 39 z write 39 xo xml 39 z write 39 xxxoo xml 39 z close 解压 z 61
  • CentOS 7之btrfs文件系统

    核心特性 xff1a 支持多物理卷 xff1a btrfs 可由多个底层物理卷组成 xff0c 支持 RAID xff0c 以联机 添加 移除 xff0c 修改 物理卷 写时复制更新机制 xff08 CoW xff09 xff1a 复制 更
  • 用symbol来获得ShadowSSDT的原始地址和函数名

    在网上看了下 xff0c 获得ShadowSSDT的函数名和原始地址的方法和文章不是很多 比较简单的应该算是设计张函数名表和用symbol的方法 个人觉得用symbol来获得ShadowSSDT还是比较方便的 xff0c 而且自己也不用去创
  • GitLab-ce的汉化

    一 汉化指南 xff0c 基于 Larry Li 版汉化指南 修改 以9 0 stable zh分支为例 源码安装汉化 推荐按照 gitlab ce 源代码中 doc install installation md 的内容手工安装 GitL
  • 打印杨辉三角形

    题目 xff1a 打印出杨辉三角形 程序分析 xff1a 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 定义的是二维数组 xff0c 为了使输出的结果看起来漂亮一点 xff0c 可以用 for xf
  • VMware虚拟机文件损坏修复方法

    一 说明一下起因 xff1a 今天在XP虚拟机中一冲动下载一个5点多GB的PT文件 xff0c 忘记此虚拟文件 xff08 vmdk文件 xff09 仅有2G空间 xff0c 结果超成了空间不足 xff0c VMware7 1提示出错 xf
  • debian下增强bash的自动补全功能

    在我们新安装的Debian系统时 xff0c 发现很多命令都不能自动补全 xff0c 这是很不方便的 xff0c 因为每个人的精力都是有限的 xff0c 不是对每个命令的每一个细节都能完全记住 xff0c 因此自动补全是一个很实用的功能 x
  • 华为RH5885H v3服务器RAID设置及问题解析

    今年春 xff0c 华为全球首发基于英特尔至强E7 v2处理器的系列服务器新品 xff0c 其中包括RH8100 V3八路服务器 RH5885H V3四路服务器和E9000刀片服务器的四路计算节点CH242 V3服务器 最近单位新购了几台华
  • Invalid or corrupt jarfile坑爹问题解决

    打包一个可以直接利用java jar jar cvfm lottery jar MANIFEST MF jdbc properties com 如果出现 xff1a java io IOException invalid header fi
  • ios tableViewCell 高度自适应

    开发过程中 xff0c 会很少使用系统自带的cell xff0c 一般都会自定义cell xff0c 用来展示各式各样的界面布局 xff0c 所以我们要自定义cell 项目中用过很多种cell高度自适应的算法 xff0c 都感觉挺麻烦的 x
  • 比较两个List的内容是否相等

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 一 问题 现在有两个ArrayList列表 xff0c 列表中的元素是String字符串 比较这两个列表中的内容相等 可以顺序不一致 如 xff1a List lt Str
  • 找不到命令报错bash:command not found解决方案

    如果新装的系统 xff0c 运行一些很正常的诸如 xff1a shutdown xff0c fdisk的命令时 xff0c 悍然提示 xff1a bash command not found 那么 首先就要考虑root 的 PATH里是否已
  • FreeRDP简介

    FreeRDP是一个Remote Desktop Protocol xff08 协议 xff09 的一个实现 xff0c 遵循Apache开源协议 xff0c 支持3D功能 xff0c 并有较高刷新率 xff0c 也支持RemoteFX x
  • Crashed when delete OGRSpatialReference objects!

    Crashed when delete OGRSpatialReference objects xff01 OGRSpatialReference oSRS 61 new OGRSpatialReference oSRS gt SetFro
  • 安卓开发笔记——自定义HorizontalScrollView控件(实现QQ5.0侧滑效果)

    对于滑动菜单栏SlidingMenu xff0c 大家应该都不陌生 xff0c 在市场上的一些APP应用里经常可以见到 xff0c 比如人人网 xff0c FaceBook等 前段时间QQ5 0版本出来后也采用了这种设计风格 xff1a x
  • 从‘void*’到‘int’的转换损失精度

    在CentOS6 2 64位下编译一下代码 xff0c 不通过 xff0c 提示 11 2 cpp In function int main int char 11 2 cpp 28 错误 xff1a 从 void 到 int 的转换损失精
  • Pycharm快速复制当前行到下一行Ctrl+D

    Pycharm快速复制当前行到下一行Ctrl 43 D
  • (三) git pre-push hook 实践一二

    在 一 初探 iOS 单元测试 一文中 xff0c 我们简单提到了执行xcodebuild test可以启动工程的单元测试并输出测试结果 xff0c 但手动执行此类命令意义是不大的 我们需要的是 xff0c 把一些测试和lint等命令写在脚
  • pyinstaller 打包成exe出现的问题+解决办法

    问题 xff1a exe文件运行无反应 首先查看自己打包时候用的参数 xff0c 如果码中没有tkinter之类的GUI窗口的话就不要用 w 了 同时查看一下码里面有没有标准化输入输出 xff0c 例如print xff0c 如果有就不要用
  • 扩散题解

    1 题目描述 xff1a 一个点每过一个单位时间就会向四个方向扩散一个距离 xff0c 如图 两个点a b连通 xff0c 记作e a b 当且仅当a b的扩散区域有公共部分 连通块的定义是块内的任意两个点u v都必定存在路径e u a0