随笔分类 -  学习笔记

摘要:LCA学习笔记 定义:在一棵树中,两个节点的最近公共祖先。 1.暴力求法 处理出每个点的深度,先把深度较深的一个点沿着父节点方向一直走到与另一个点相同的深度,如果此时两个点不同,那么两个点一起向上跳(代码实现过于简单,这里不过多赘述) 2.倍增优化暴力 注意到我们在暴力求法中,点是一步一步向上跳的, 阅读全文
posted @ 2024-10-17 19:25 爱艺诗篇 阅读(4) 评论(0) 推荐(0) 编辑
摘要:KMP算法学习笔记 声明:下文都以S串为原串,T串为模式串,字符串都以0起始 首先介绍暴力算法(BF) 暴力不难想,两个指针i,j,分别表示在S,T中匹配到了哪一位,当j匹配到T末尾时,表示查找成功,否则,j就回退到0 时间复杂度为O(nm) KMP算法 在介绍KMP算法之前,要引入一个函数:前缀函 阅读全文
posted @ 2024-10-10 19:54 爱艺诗篇 阅读(3) 评论(0) 推荐(0) 编辑
摘要:莫队学习笔记 莫队算法是一种优雅的暴力,常用于询问多个区间信息 主要思想 考虑一个问题:要查询[l,r]区间的信息,那么显然和[l,r-1]和[l-1,r]区间有着很大一部分重合,那么我们就可以考虑从其他相近的区间通过两个指针L和R来转移 实现 把每次询问的区间给保存下来,离线来做,这样我们可以得到 阅读全文
posted @ 2024-10-10 09:46 爱艺诗篇 阅读(5) 评论(0) 推荐(0) 编辑
摘要:Treap(树堆) 学习笔记(此处为带旋Treap) Treap简介 Treap是一种二叉搜索树,其中,权值val满足二叉搜索树的性质,节点优先级priority满足堆的性质(作用后面会讲到) Treap适用情况 因为属于二叉搜索树,所以可以维护二叉搜索树的信息,带旋Treap可以更好地控制树的深度 阅读全文
posted @ 2024-10-09 18:36 爱艺诗篇 阅读(30) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示