P1661 扩散

2023-05-16

P1661 扩散

题目描述

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

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

输入输出格式

输入格式:

 

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

【数据规模】

对于20%的数据,满足1≤N≤5; 1≤X[i],Y[i]≤50;

对于100%的数据,满足1≤N≤50; 1≤X[i],Y[i]≤10^9。

 

输出格式:

 

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

 

输入输出样例

输入样例#1:

2
0 0
5 5  
输出样例#1:

5  
 

分析:

离散化,最短距离就是映射在x轴和y轴上的距离和除2。

比如说一个点是(5,0),一个点是(0,4),最短距离就是(|5-0|+|0-4|+1)/2=5

加1保证向上取整。

本题就是求最小生成树的最大边。

 

距离不是严格的曼哈顿距离,应该是

dis[i,j]=(max(x[i]-x[j],x[j]-x[i])+max(y[i]-y[j],y[j]-y[i])-1)/2+1;

可以最小生成树,但是题目可以看出是最小生成树的最大边,所以二分答案应该也可以做,但是二分答案不好调,所以放最小生成树代码。。。

 


 1 #include<cstdio>
 2 #include<iostream>
 3 #include<vector>
 4 #include<algorithm>
 5 #define mysister
 6 using namespace std;
 7 const int maxn=50;
 8 struct bian
 9 {
10     int u,v,w;
11     bian(int a,int b,int c):u(a),v(b),w(c){}
12     bool operator < (bian b)
13     {
14         return w<b.w;
15     }
16 };
17 int n,x[maxn],y[maxn],ans=0,fa[maxn];
18 vector<bian>g;
19 int find(int u)
20 {
21     return fa[u]==u?u:fa[u]=find(fa[u]);
22 }
23 int main()
24 {
25     scanf("%d",&n);
26     for(int i=0;i<n;i++)
27     {
28       scanf("%d%d",&x[i],&y[i]);
29       fa[i]=i;
30       for(int j=0;j<i;j++)
31         g.push_back(bian(i,j,(max(x[i]-x[j],x[j]-x[i])+max(y[i]-y[j],y[j]-y[i])-1)/2+1));
32     }
33     sort(g.begin(),g.end());
34     for(int i=0;i<g.size();i++)
35       if(find(g[i].u)!=find(g[i].v))
36       {
37           fa[find(g[i].u)]=find(g[i].v);
38           ans=max(ans,g[i].w);
39       }
40     printf("%d",ans);
41 }  

 

 

 
 
 
 
 
 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

P1661 扩散 的相关文章

随机推荐

  • 最小计算机主板,主板板型有哪几种?大主板和小主板的区别在哪?

    主板板型有哪几种 xff1f 大家在组装电脑的时候 xff0c 必须面对一个问题 xff0c 那就是选择什么样的主板 xff1f 有些用户可能并不清楚主板板型有哪几种 xff1f 大主板和小主板又有何区别 xff1f 其实主板板型不仅和机箱
  • 服务器问题网站拔毛,分析网站被K和拔毛常见的几点重要因素

    现在网站被搜索拔毛 被K或是被降权的情况已经是不少见的了 xff0c 那么为什么有那么多的站会被得到如此待遇呢 搜索也在进步 xff0c 今日的搜索为了得到用户的青睐不断的提升自己的 xff0c 从而对网站的要求是不断提升 xff0c 原本
  • ftp网络文件传输服务器,FTP文件传输服务

    FTP 文件传输协议 典型的 xff23 xff0f xff33 架构的应用层协议 xff0c 需要由服务端软件 xff0c 客户端软件两部分共同实现传输功能 需求描述 xff1b 采用FTP虚拟用户的方式 xff0c 添加三个用户 xff
  • 服务器主板上一个处理器性能如何,怎么判断一个CPU才算好

    我们作为一个电脑用户新手来说 xff0c 购买一个好的电脑配置能让我们体验更好的电脑 作为一个电脑核心CPU来说是非常重要的 xff0c 不过大家是新手却不知道如何判断一个CPU的好坏 所以学习啦小编这里就给大家上一堂关于如何选择一个好的C
  • linux添加fuji打印机,Ubuntu16.04下添加打印机FujiXerox CP116w

    今天要打印一份北马的成绩单 不想重启机器了 在Ubuntu下尝试添加打印机 最后成功了 记录一下 打印机型号是FujiXerox CP116w 通过WIFI连接的 在Ubuntu16 04下添加打印机 Add Printer gt Devi
  • 【非常详细】Ubuntu18.04安装显卡驱动和CUDA,CUDNN流程和踩坑记录

    1 预准备 在一个刚安装好的 全新的ubuntu18 04上 xff0c 按下Ctrl 43 Al 43 T打开终端 xff0c 依次输入以下三条指令 xff0c 安装好gcc和cmake gcc是GNU compiler collecti
  • java w3 xml格式化_xml代码在线格式化美化工具 - 代码工具 - W3Cschool

    XML 代码美化 xff1a 在上面的编辑器中输入你手中混乱 压缩或混淆的XML代码 xff0c 点击 格式化 代码 即可实现代码的格式化与美化功能 该编辑器还具备行数显示及语法高亮显示的功能 此外还提供了大量的附加选项来实现个性化的代码美
  • 计算机主板手工,教你DIY一台笔记本(伪),简单粗暴成本低

    教你DIY一台笔记本 伪 xff0c 简单粗暴成本低 2018 11 03 17 25 00 277点赞 561收藏 194评论 这是某个垃圾佬长久以来的执念 xff0c 灵感来自于一个不堪龟速笔记本折磨的夜晚 因为某些原因 xff0c 个
  • Openstack 安装部署指南翻译系列 之 Manila服务安装(Share Storage)

    上面左边是我的个人微信 xff0c 如需进一步沟通 xff0c 请加微信 右边是我的公众号 Openstack私有云 xff0c 如有兴趣 xff0c 请关注 1 1 1 1 Manila服务 安装 xff08 Share Storage
  • Clang与libc++abi库安装

    系统ubuntu64位 Clang4 0 参考 xff1a 1 https github com yangyangwithgnu use vim as ide 0 1 其中 第7章 工具链集成 2 http clang llvm org g
  • pandas处理较大数据量级的方法 - chunk,hdf,pkl

    前情提要 工作原因需要处理一批约30G左右的CSV数据 xff0c 数据量级不需要hadoop的使用 xff0c 同时由于办公的本本内存较低的缘故 xff0c 需要解读取数据时内存不足的原因 操作流程 xff1a 方法与方式 首先是读取数据
  • Objective-C --- UIView (基础运用)

    为什么80 的码农都做不了架构师 xff1f gt gt gt 1 创建 UIView view 61 UIView alloc init 2 位置 frame view frame 相对父视图的位置 view bounds 相对自己的位置
  • Debian8.2 xfce桌面设置双屏

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 最近想折腾 Xfce xff0c 而且 Fedora 的包都好老啊 xff0c 所以换了 Arch Linux 果然装完就有的折腾了 xff1a Xfce 4 0 居然不支
  • 【转】好东西!sqlite3中BLOB数据类型存储大对象运用示例

    1 常用接口 个人比较喜欢sqlite 使用最方便 xff0c 唯一的准备工作是下载250K的源 xff1b 而且作者很热心 xff0c 有问必答 以下演示一下使用sqlite的步骤 xff0c 先创建一个数据库 xff0c 然后查询其中的
  • Qt实现MFC的WM_IDLE机制.doc

    win32 有一个消息是 WM IDLE 而在MFC里面的也有 一个virtualBOOLOnIdle LONGlCount 的函数与之相对应 xff0c 而在MSDN中对该函数的解释是 xff1a Override this member
  • ERROR: Kernel configuration is invalid.

    最简单的linux hello的驱动源程序 span class hljs comment 下面是驱动源代码 span span class hljs preprocessor include lt linux init h gt span
  • i2c中start和restart的区别

    有的硬件芯片提供了一个个寄存器 xff0c 供我们很好的操作i2c xff0c 但是 xff0c 在用的时候 xff0c 我们是不知道他到地是怎么操作的 xff0c 下边 xff0c 我就探讨下i2c中的start和restart的区别 s
  • Linux——常见的N个问题

    一 如何建立多用户 提醒大家一句 xff0c 别一直使用root用户 xff0c 因为root用户在系统中有着至高无上的权力 xff0c 一不小心 就可能破坏系统 比如我们想删除 temp目录下的文件却将命令不小心输成 rm temp xf
  • animate css组合,Vue---CSS动画之animate.css库

    animation完成一个动画效果 代码基本结构搭建 使用与过渡动画相同的代码结构 hello world change var vm 61 new Vue el 39 root 39 data show true methods hand
  • P1661 扩散

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