代码随想录:107、寻找存在的路径

107. 寻找存在的路径

这是道简单的并查集题目,设计插入,查找函数,比较基础

1、条件准备

father数组存每个结点的祖宗结点是谁
  #include <bits/stdc++.h>#define rep(i, l, r) for (int i = l; i <= r; i++)using namespace std;#define endl '\n'int father[105];
int n,m;

2、主函数

首先初始化,每个结点的祖宗结点是本身。
然后插入边,更新father数组,通过join函数来实现
然后输入待查找的两结点,判断一下它们的祖宗结点是否一样
 int main(){std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n>>m;rep(i,1,n)father[i]=i;rep(i,1,m){int a,b;cin>>a>>b;join(a,b);}int be,en;cin>>be>>en;if(find(be)==find(en))cout<<"1";else cout<<"0";return 0;}

3、find函数

如果祖宗结点是本身,则已经找到祖宗结点,返回。
否则找该结点的父节点的祖宗结点,并进行路径压缩。
int find(int u)
{return u==father[u]?u:father[u]=find(father[u]);
}

4、join函数

找出这两个结点的祖宗结点。如果一样则什么都不做。
否则更新其中一个的祖宗结点为另一个。
void join(int u,int v)
{u=find(u);v=find(v);if(u==v)return ;father[u]=v;
}

5、总结

并查集入门题
完整代码如下
  #include <bits/stdc++.h>#define rep(i, l, r) for (int i = l; i <= r; i++)using namespace std;#define endl '\n'int father[105];
int n,m;int find(int u)
{return u==father[u]?u:father[u]=find(father[u]);
}void join(int u,int v)
{u=find(u);v=find(v);if(u==v)return ;father[u]=v;
}int main(){std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n>>m;rep(i,1,n)father[i]=i;rep(i,1,m){int a,b;cin>>a>>b;join(a,b);}int be,en;cin>>be>>en;if(find(be)==find(en))cout<<"1";else cout<<"0";return 0;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/55390.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django学习笔记九:Django中间件Middleware

Django中间件&#xff08;Middleware&#xff09;是一段在Django的请求/响应处理过程中&#xff0c;可以介入并改变请求或响应的代码。中间件是Django框架中一个非常强大的功能&#xff0c;它允许你在Django的视图函数之前或之后执行自定义代码。 中间件可以用于&#xff1a; …

C题(六) 1到 100 的所有整数中出现多少个数字9

场景&#xff1a;编写程序数一下 1到 100 的所有整数中出现多少个数字9 控制循环的变量不可以随意改动&#xff01;&#xff01;&#xff01; 控制循环的变量不可以随意改动&#xff01;&#xff01;&#xff01; 控制循环的变量不可以随意改动&#xff01;&#xff01;&#x…

看480p、720p、1080p、2k、4k、视频一般需要多大带宽呢?

看视频都喜欢看高清&#xff0c;那么一般来说看电影不卡顿需要多大带宽呢&#xff1f; 以4K为例&#xff0c;这里引用一位网友的回答&#xff1a;“视频分辨率4092*2160&#xff0c;每个像素用红蓝绿三个256色(8bit)的数据表示&#xff0c;视频帧数为60fps&#xff0c;那么一秒…

数据结构--二叉树的顺序实现(堆实现)

引言 在计算机科学中&#xff0c;二叉树是一种重要的数据结构&#xff0c;广泛应用于各种算法和程序设计中。本文将探讨二叉树的顺序实现&#xff0c;特别是堆的实现方式。 一、树 1.1树的概念与结构 树是⼀种⾮线性的数据结构&#xff0c;它是由 n(n>0) 个有限结点组成…

C#串口温度读取

背景&#xff1a;每天学点&#xff0c;坚持 要安装好虚拟串口和modbus poll&#xff0c;方便调试&#xff08;相关资源在文末&#xff0c;也可以私信找我要&#xff09; 传感器部分使用的是达林科技的DL11B-MC-D1&#xff0c;当时42软妹币买的&#xff08;官网上面有这个传感…

若依--文件上传前端

前端 ry的前端文件上传单独写了一个FileUpload.Vue文件。在main.js中进行了全局的注册&#xff0c;可以在页面中直接使用文件上传的组件。全局导入 在main.js中 import 组件名称 from /components/FileUpLoadapp.compoent(组件名称) //全局挂载组件在项目中使用 组件命令 中…

SwipeRefreshLayout和ViewPager滑动冲突的原因和正确的解决方式

重写SwipeRefreshLayout的onIntercept方法就可以很简单的解决了。 思路&#xff1a; 因为下拉刷新&#xff0c;只有纵向滑动的时候才有效&#xff0c;那么我们就判断此时是纵向滑动还是横向滑动就可以了。纵向滑动就拦截事件&#xff0c;横向滑动不拦截。怎么判断是纵向滑动还…

vue ui指令打不开图形化界面解决方案

原因&#xff1a;由于我的node版本过高 和脚手架版本(3)不兼容 导致无法正常运行指令vue ui从而打开图形化界面管理vue项目 报错信息为TypeError: Function.prototype.apply was called on undefined, which is a undefined and not a function 解决措施&#xff1a;我们可以降…

828华为云征文|华为云 Flexus X 实例之家庭娱乐中心搭建

话接上文《828华为云征文&#xff5c;华为云Flexus X实例初体验》&#xff0c;这次我们利用手头的 Flexus X 实例来搭建家庭影音中心和密码管理环境。 前置环境 为了方便小白用户甚至运维人员&#xff0c;我觉得现阶段的宝塔面板 和 1Panel 都是不错的选择。我这里以宝塔为例…

GPTQ vs AWQ vs GGUF(GGML) 速览和 GGUF 文件命名规范

简单介绍一下四者的区别。 参考链接&#xff1a;GPTQ - 2210.17323 | AWQ - 2306.00978 | GGML | GGUF - docs | What is GGUF and GGML? 文章目录 GPTQ vs AWQ vs GGUF&#xff08;GGML&#xff09; 速览GGUF 文件命名GGUF 文件结构文件名解析答案 附录GGUF 文件命名GGUF 文件…

maven安装本地jar包到本地仓库

有时候我们需要把本地的 jar 包 install 到本地的 maven 仓库&#xff0c;这时就需要手动install依赖项。例如&#xff0c;把下面的 zhdx-license-1.0.jar 安装到本地 maven 仓库的操作如下&#xff1a; <dependency><groupId>com.zhdx</groupId><artifa…

CSS综合页布面局案例

写的比较一般,如果想要参考可以点击链接。 CSS综合案例(登录页面)资源-CSDN文库 引言: 我们学习CSS和HTML都是为了想要做一个网页布局,但是每逢上手可能就会需要查阅很多语言,我觉得是没有什么问题的,熟能生巧,编程是需要练的,但是写网页的时候需要实现某个效果时需…

Resdis中关于字符串类型的基础命令

本文主要详解key-value中vaule为字符串类型的情况&#xff0c;value属于其他的数据类型不适应&#xff1b;有几个命令是通用命令 目录 1.set和get 2.keys 3.exists 4.del 5.expire 6.ttl 7.type 8.object encoding key 9.加减操作 10.字符串操作 11.命令小结 1.se…

DCGAN生成漫画头像

tutorials/application/source_zh_cn/generative/dcgan.ipynb MindSpore/docs - Gitee.com 在下面的教程中&#xff0c;我们将通过示例代码说明DCGAN网络如何设置网络、优化器、如何计算损失函数以及如何初始化模型权重。在本教程中&#xff0c;使用的动漫头像数据集共有70,17…

python UNIT 3 选择与循环(2)

目录 1。循环的优化 经典优化分析&#xff1a; 未优化的代码&#xff1a; 细节分析&#xff1a; 优化后的代码&#xff1a; 优化的细节&#xff1a; 性能对比 优化的关键在于&#xff1a; 经典习题讲解&#xff1a;(紫色的解析请重点关注一下) 1。例三 个人代码解析…

linux常用的命令

一、cd&#xff1a;Change directory 修改工作目录 cd / #进入根目录 cd - #返回上次的目录 cd #返回home目录 cd ~ #返回home目录 cd ../ # 返回上一级目录二、ls&#xff1a;List files 列出目录内容 -a 列出包括.a开头的隐藏文件的所有文件 -A 通-a&#xff0c;但…

SpringMVC源码-AbstractUrlHandlerMapping处理器映射器将实现Controller接口的方式定义的路径存储进去

DispatcherServlet的initStrategies方法用来初始化SpringMVC的九大内置组件 initStrategies protected void initStrategies(ApplicationContext context) {// 初始化 MultipartResolver:主要用来处理文件上传.如果定义过当前类型的bean对象&#xff0c;那么直接获取&#xff0…

随笔(四)——代码优化

文章目录 前言1.原本代码2.新增逻辑3.优化逻辑 前言 原逻辑&#xff1a;后端data数据中返回数组&#xff0c;数组中有两个对象&#xff0c;一个是属性指标&#xff0c;一个是应用指标&#xff0c;根据这两个指标展示不同的多选框 1.原本代码 getIndicatorRange(indexReportLi…

java集合 -- 面试

Java集合框架体系 ArrayList底层实现是数组 LinkedList底层实现是双向链表 HashMap的底层实现使用了众多数据结构&#xff0c;包含了数组、链表、散列表、红黑树等 List ps : 数据结构 -- 数组 ArrayList源码分析 ArrayList底层的实现原理是什么? ArrayList list new…

Electron 进程通信

预加载&#xff08;preload&#xff09;脚本只能访问部分 Node.js API&#xff0c;但是主进程可以访问全部API。此时&#xff0c;需要使用进程通信。 比如&#xff0c;在preload.js中&#xff0c;不能访问__dirname&#xff0c;不能使用 Node 中的 fs 模块&#xff0c;但主进程…