蓝桥杯 并查集汇总学习 及其代码
蓝桥杯 并查集汇总学习 及其代码
这里记录一下在刷蓝桥杯的并查集的题时写的一些代码
蓝桥幼儿园
蓝桥幼儿园 :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.并查集的合并(带路径压缩) 2.询问是否为同一个集合 3.例题 二.前缀和 1 .前缀和是什么 2.经典题目 三- 字符串处理 1.字符串的插入 2.字符串转化为int类型 ...
- 蓝桥杯 基础训练 试题集汇总【13道】
练习系统 目 录 BASIC-1 闰年判断 BASIC-2 01字串 BASIC-3 字母图形 BASIC-4 数列特征 BASIC-5 查找整数 BASIC-6 杨辉三角 BASIC-7 特殊的 ...
- 蓝桥杯国赛知识点汇总
蓝桥杯国赛备赛总结知识点,以老师给的为原型,添加自己理解,供大家参考,后期不定时更新. 基础 1.熟练掌握API1.8常用方法 2.大数(高精度)加减乘除 3.并查集 模板: public class ...
- 十四届蓝桥杯EDA科目客观题汇总
文章目录 前言 一.第十三届 全国软件和信息技术专业人才大赛个人赛EDA 设计与开发科目 模拟试题一 二.蓝桥杯EDA赛设计与开发科目设计部分训练题三 三.第十二届 蓝桥杯 EDA设计与开发项目 国赛 ...
- 小学生蓝桥杯Python闯关 | 汇总
学习Python从娃娃抓起!记录下蓝桥杯Python学习和备考过程中的题目,记录每一个瞬间. 1.小学生蓝桥杯Python闯关 | 获取字符串的最后一个字符_COCOgsta的博客-CSDN博客 2. ...
- 并查集算法学习(转)
我读的博客地址是这个: http://blog.csdn.net/dellaserss/article/details/7724401/ 但是忍不住自己再写一遍顺便加入一些自己的思考. 这是我见过的最 ...
- 蓝桥杯同一类型题目汇总
目录 一.双循环快速暴力求解 1.蓝桥杯第十一届真题-<门牌制作> 2.蓝桥杯第十届真题-<平方和> 3.蓝桥杯第十二届真题-<乘积尾零> 4.蓝桥杯第十二届真题- ...
- 并查集——新手学习记录
好吧,什么垃圾并查集,并查集什么的都是铁憨憨<+__+> 现在开始复习回忆:(新手,有错误望指正) 什么叫做并查集,并查集就是一个集合问题,其实最主要的就是知道并查集是一个求解集合数目的问 ...
- 蓝桥杯练习合集(更新中)
蓝桥杯 蓝桥杯 文章目录 蓝桥杯 1. 字符逆序 2. 用筛法求之N内的素数 3. 字符串的输入输出处理 4. 斐波那契数列(Fibonacci) 5. 闰年判断 6. 马虎的计算 7. 不同的字串 ...
最新文章
- switch分支结构
- jQuery+css模拟下拉框模糊搜索的实现
- Android UI编程进阶——使用SurfaceViewt和Canvas实现动态时钟
- vb.net2019- 机器学习ml.net情绪分析(2)
- 【渝粤教育】电大中专测量学 (3)作业 题库
- Android中使用软引用和弱引用避免OOM的方法
- 超牛!读博期间,他以第一作者发表7篇文章
- hdu3265一种错误的做法
- SpringBoot测试失败并报错: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration
- Stanford CoreNLP--Part of Speech
- python kivy kv模板调用_正确使用.kv文件进行Kivy并将其导入到Python...
- matlab 固态 机械_固态硬盘无法识别或数据删除还能恢复数据吗?
- response setHeader 设置下载中文文件名乱码问题
- 修复win10系统无法开机问题
- allegro导出CSV格式的坐标文件 适用16.6
- ssm+jsp计算机毕业设计智慧幼儿园管理系统j1upn(程序+lw+源码+远程部署)
- TRL去嵌(De-embedding)
- 【ArcGIS Runtime SDK for Android-00】具备怎样的能力
- window10 adb不是内部命令
- Typora增加标题序号方式