#10015. 「一本通 1.2 练习 2」扩散 二分+并查集或Floyd

题目链接
思路:
有两种方法:二分+并查集;Floyd。
————————————————————————————————————————————————————
方法一:二分+并查集
思路:
就是一个二分,需要判断的是每一次枚举的时间下的图是刚连通,还是早就连通了,还是没有连通。
用二分法枚举最小时间,判断当前的图是否连通,并查集只有一个父节点说明时间找大了,否则就是时间找小了,接下来移动二分法中的左右断点,二分的最后就是答案。
代码:

//二分+并查集
//就是一个二分,每枚举一个时间就判断一下现在是连成一个块了:
//是刚连成,还是早就连成了;还是没有连成。
#include<stdio.h>
#include<math.h>
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<string.h>
#include<algorithm>
using namespace std;
const int inf=0x3f3f3f3f;
const int N=100002;
int n,x[55],y[55],f[55];
int getf(int v)
{if(f[v]==v)return v;else{f[v]=getf(f[v]);return f[v];}
}
int main()
{int i,j,z,t=0;cin>>n;for(i=1;i<=n;i++){scanf("%d%d",&x[i],&y[i]);}int l=0,r=1e9,sum=0;while(l<=r)//二分枚举最小时间{int mid=(l+r)/2;for(i=1;i<=n;i++){f[i]=i;}for(i=1;i<=n;i++){for(j=i+1;j<=n;j++){int s=abs(x[i]-x[j])+abs(y[i]-y[j]);if(s<=mid*2){int t1=getf(i),t2=getf(j);if(t1!=t2)f[t1]=t2;}}}sum=0;for(i=1;i<=n;i++){if(f[i]==i)sum++;}if(sum==1){t=mid;r=mid-1;}elsel=mid+1;}cout<<t<<endl;
}

————————————————————————————————————————————————————
方法二:Floyd
思路:图的初始值赋值为两点之间的距离:d=|x1-x2|+|y1-y2|;然后遍历一遍Floyd算法,更新两点之间的最小距离,然后找出最大的距离;最大距离的两点如果连通的话,那其他的点也都连通了,设最大距离为maxx,则最小时间为t=(maxx+1)/2;
代码:

//Floyd
#include<stdio.h>
#include<math.h>
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<string.h>
#include<algorithm>
using namespace std;
const int inf=0x3f3f3f3f;
const int N=100002;
int n,x[55],y[55],e[55][55];
int main()
{int i,j,z,t;cin>>n;for(i=1;i<=n;i++){scanf("%d%d",&x[i],&y[i]);}for(i=1;i<=n;i++){for(j=1;j<=n;j++){e[i][j]=e[j][i]=abs(x[i]-x[j])+abs(y[i]-y[j]);}}for(z=1;z<=n;z++){for(i=1;i<=n;i++){for(j=1;j<=n;j++){e[i][j]=min(e[i][j],max(e[i][z],e[z][j]));}}}t=0;for(i=1;i<=n;i++){for(j=1;j<=n;j++){t=max(t,e[i][j]);}}printf("%d\n",(t+1)/2);return 0;
}

感觉不错的请一键三连哦!

#10015. 「一本通 1.2 练习 2」扩散 二分+并查集或Floyd相关推荐

  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. 5、catch中发生了未知异常,finally代码块如何应对?
  2. 12月31日写成13月1日引发重大 Bug,程序员新年就要被“祭天”?
  3. bzoj4033:[HAOI2015]树上染色
  4. 本地突破XP系统权限
  5. /bin/sh -c的必要性
  6. 首届Hadoop技术社区中国meetup来袭!对外报名正式启动!
  7. Vagrant+VirtualBox版本的坑
  8. 借钱,一定要有还钱的素质
  9. 《WF编程》系列之30 - 基本活动:错误处理
  10. MPEG音视频编解码之MP3编解码概述
  11. 诺基亚N950–MeeGo式体验
  12. Redis6.2.6下载和安装
  13. 3dsmax模型导出网页3D版gltf格式文件 #2021.6.25
  14. 强大的分组SectionListView, 支持自定义组头布局和分组的内容布局, 组头有挤压效果
  15. python实现word文档合并 v2.0
  16. MyBatis-Plus 新增插入成功并获取自增Id(没问题 已实验哟)
  17. 关于机器学习的知识点,全在这篇文章里了
  18. 97年世界编程大赛一等奖作品
  19. Cisco AP-胖瘦AP的转换
  20. Chrome主页被http://hl2.gndh111.top/劫持,自动跳转hao123的解决办法

热门文章

  1. 推箱子游戏的java设计思路_基于Java推箱子游戏的设计与实现
  2. 外汇EA是什么?外汇EA有什么用呢?能赚钱吗?
  3. 数据治理之数据质量管控流程(参考)
  4. Mortal Kombat Tower(dp)
  5. macOS Outlook 查看邮件的源码 HTML源码
  6. Java工程师 数据结构与算法 数组面试题(Day40)
  7. 服务器网站怎么屏蔽ip,云服务器怎么屏蔽ip
  8. HBuilderX 插件下载失败 解决
  9. TM4C129建立FREERTOS工程
  10. Oracle minus用法详解及应用实例