蓝桥杯 并查集汇总学习 及其代码

这里记录一下在刷蓝桥杯的并查集的题时写的一些代码

蓝桥幼儿园

蓝桥幼儿园 :https://www.lanqiao.cn/problems/1135/learning/

# https://www.lanqiao.cn/problems/1135/learning/
N,M = map(int,input().split())
f = [i for i in range(N+1)]
def find(x):if f[x] != x:f[x] = find(f[x]) # 路径压缩return f[x]# 合并两个
def union(x,y):fx = find(x)fy = find(y)if fx != fy:f[fy] = f[fy]for i in range(M):op,x,y = map(int,input().split())if op == 1:union(x,y)elif op == 2:if find(f[x]) == find(f[y]):print('YES')else:print('NO')

七段码

七段码:https://www.lanqiao.cn/problems/595/learning/

# https://www.lanqiao.cn/problems/595/learning/
import itertools
class UnionFindSet():def __init__(self,n):self.count = 0 # 当前连通分量数目# self.count = n # 不连通区域self.father=[x for x in range(n)]def find(self,x):root = xwhile self.father[root]!=root: # 找根节点root=self.father[root]# 路径压缩while x != root:o = self.father[x] # 找x的父节点self.father[x] = root # 把x的父节点设置成刚才找到的根x = o # 往上一层return rootdef union(self,x,y):x,y=self.find(x),self.find(y)if x != y:self.father[y]=x # 合并self.count +=1return 0result = 0
nums = [x for x in range(7)]
for x in range(1,8): # 每次用的晶体管个数for k in itertools.combinations(nums, x): #从所有的晶体管中按个数要求不重复的拿。l = len(k)#晶体管的个数ufs = UnionFindSet(l)#两两的逐个选取for a in range(l):for b in range(a+1,l):#根据下图的数字判断两个晶体管是否相邻。if abs(k[a]-k[b])==1 or (k[a]==1 and k[b]==6) or (k[a]==2 and k[b]==6) or (k[a]==4 and k[b]==6) or (k[a]==0 and k[b]==5):ufs.union(a,b)if l-ufs.count==1: #比如当用到三个二极管的时候只需要链接两次,那么当晶体管个数减去链接次数为1的时候符合要求。result += 1
print(result)

合根植物

合根植物:https://www.lanqiao.cn/problems/110/learning/

# https://www.lanqiao.cn/problems/110/learning/m,n = map(int,input().split())
k = int(input())
f = [i for i in range(m*n+1)]def find(x):if f[x] != x:f[x] = find(f[x]) # 路径压缩return f[x]def union(x,y):fx = find(x)fy = find(y)if fx != fy:f[fx] = f[fy]for i in range(k):x,y = map(int,input().split())union(x, y)ans = 0
for i in range(m*n):if f[i] == i:ans += 1
print(ans)

小猪存钱罐

小猪存钱罐 https://www.lanqiao.cn/problems/1085/learning/

# https://www.lanqiao.cn/problems/1085/learning/def find(x):if f[x] != x:f[x] = find(f[x]) # 路径压缩return f[x]# 合并两个
def union(x,y):fx = find(x)fy = find(y)if fx != fy:f[fx] = f[fy]N = int(input())
f = [i for i in range(N+1)]
for i in range(1,N+1):union(i,int(input()))ans = 0
for i in range(1,N+1):if f[i] == i:ans += 1
print(ans)

其他题目

火星旅行:https://www.lanqiao.cn/problems/1084/learning/
方格染色:https://www.lanqiao.cn/problems/1012/learning/
星球大战:https://www.lanqiao.cn/problems/828/learning/

蓝桥杯 并查集汇总学习 及其代码相关推荐

  1. 冲击蓝桥杯-并查集,前缀和,字符串

    目录 前言 一.并查集 1.并查集的合并(带路径压缩) 2.询问是否为同一个集合 3.例题 二.前缀和 1 .前缀和是什么 2.经典题目 三- 字符串处理 1.字符串的插入 2.字符串转化为int类型 ...

  2. 蓝桥杯 基础训练 试题集汇总【13道】

    练习系统 目   录 BASIC-1 闰年判断 BASIC-2 01字串 BASIC-3 字母图形 BASIC-4 数列特征 BASIC-5 查找整数 BASIC-6 杨辉三角 BASIC-7 特殊的 ...

  3. 蓝桥杯国赛知识点汇总

    蓝桥杯国赛备赛总结知识点,以老师给的为原型,添加自己理解,供大家参考,后期不定时更新. 基础 1.熟练掌握API1.8常用方法 2.大数(高精度)加减乘除 3.并查集 模板: public class ...

  4. 十四届蓝桥杯EDA科目客观题汇总

    文章目录 前言 一.第十三届 全国软件和信息技术专业人才大赛个人赛EDA 设计与开发科目 模拟试题一 二.蓝桥杯EDA赛设计与开发科目设计部分训练题三 三.第十二届 蓝桥杯 EDA设计与开发项目 国赛 ...

  5. 小学生蓝桥杯Python闯关 | 汇总

    学习Python从娃娃抓起!记录下蓝桥杯Python学习和备考过程中的题目,记录每一个瞬间. 1.小学生蓝桥杯Python闯关 | 获取字符串的最后一个字符_COCOgsta的博客-CSDN博客 2. ...

  6. 并查集算法学习(转)

    我读的博客地址是这个: http://blog.csdn.net/dellaserss/article/details/7724401/ 但是忍不住自己再写一遍顺便加入一些自己的思考. 这是我见过的最 ...

  7. 蓝桥杯同一类型题目汇总

    目录 一.双循环快速暴力求解 1.蓝桥杯第十一届真题-<门牌制作> 2.蓝桥杯第十届真题-<平方和> 3.蓝桥杯第十二届真题-<乘积尾零> 4.蓝桥杯第十二届真题- ...

  8. 并查集——新手学习记录

    好吧,什么垃圾并查集,并查集什么的都是铁憨憨<+__+> 现在开始复习回忆:(新手,有错误望指正) 什么叫做并查集,并查集就是一个集合问题,其实最主要的就是知道并查集是一个求解集合数目的问 ...

  9. 蓝桥杯练习合集(更新中)

    蓝桥杯 蓝桥杯 文章目录 蓝桥杯 1. 字符逆序 2. 用筛法求之N内的素数 3. 字符串的输入输出处理 4. 斐波那契数列(Fibonacci) 5. 闰年判断 6. 马虎的计算 7. 不同的字串 ...

最新文章

  1. switch分支结构
  2. jQuery+css模拟下拉框模糊搜索的实现
  3. Android UI编程进阶——使用SurfaceViewt和Canvas实现动态时钟
  4. vb.net2019- 机器学习ml.net情绪分析(2)
  5. 【渝粤教育】电大中专测量学 (3)作业 题库
  6. Android中使用软引用和弱引用避免OOM的方法
  7. 超牛!读博期间,他以第一作者发表7篇文章
  8. hdu3265一种错误的做法
  9. SpringBoot测试失败并报错: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration
  10. Stanford CoreNLP--Part of Speech
  11. python kivy kv模板调用_正确使用.kv文件进行Kivy并将其导入到Python...
  12. matlab 固态 机械_固态硬盘无法识别或数据删除还能恢复数据吗?
  13. response setHeader 设置下载中文文件名乱码问题
  14. 修复win10系统无法开机问题
  15. allegro导出CSV格式的坐标文件 适用16.6
  16. ssm+jsp计算机毕业设计智慧幼儿园管理系统j1upn(程序+lw+源码+远程部署)
  17. TRL去嵌(De-embedding)
  18. 【ArcGIS Runtime SDK for Android-00】具备怎样的能力
  19. window10 adb不是内部命令
  20. Typora增加标题序号方式

热门文章

  1. 汉堡包菜单_神圣的汉堡包!
  2. 关于“微信公众平台测试号管理接口配置信息配置失败”的问题解决办法
  3. 期权最新高频行情数据
  4. gensim官方文档实践笔记
  5. MP3 MP5 车机 音视频解码方案设计开发
  6. 再一次和新同事们谈谈看法
  7. excel排序求和:如何统计前几名数据合计 上篇
  8. java 字母个数字_Java 中字母对应的数字是多少
  9. 与 Hadoop 对比,如何看待 Spark 技术
  10. opencv3-编程入门学习笔记