type
status
date
slug
summary
tags
category
icon
password
Trie树:
Trie树是用来查找某个集合出现的次数
并查集:
并查集可以用来查询某个字符串是否在集合中,查询两个数是否属于一个集合,支持合并和查询功能
这个代码的关键就是
p[x]是其父节点,利用下面的函数递归查询根节点
def find(x):
if p[x]!=x:
p[x]=find(p[x])
return p[x]
这个代码还进行了路径优化,使其后面的查找速度更快
堆:
首先要知道,对于堆这种数据结构,他又两种,大根堆与小根堆,在这里用大根堆先进行算法模板的书写
对于一个节点,他要是小根堆,就必须要小于他的两个子节点,如果不符合,那么就必须将这个小节点与它的子节点进行交换
算法模板:
算法的关键在down函数那里,我们需要进行注意左右节点的比较
if left<=size and r[left]<r[t]:
t=left
if right<=size and r[right]<r[t]:
t=right
要注意是r[right]<r[t],而不是与r[x]进行比较,因为不只是要和根节点进行比较,左右节点还需要进行比较
- Author:xiaowaaa
- URL:https://www.xiaowaaa.asia//article/1285df8d-8884-800c-8465-d6df879f5ca2
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!