10 2024 档案
摘要:LCA学习笔记 定义:在一棵树中,两个节点的最近公共祖先。 1.暴力求法 处理出每个点的深度,先把深度较深的一个点沿着父节点方向一直走到与另一个点相同的深度,如果此时两个点不同,那么两个点一起向上跳(代码实现过于简单,这里不过多赘述) 2.倍增优化暴力 注意到我们在暴力求法中,点是一步一步向上跳的,
阅读全文
摘要:[WC2013] 糖果公园 题目描述 Candyland 有一座糖果公园,公园里不仅有美丽的风景、好玩的游乐项目,还有许多免费糖果的发放点,这引来了许多贪吃的小朋友来糖果公园游玩。 糖果公园的结构十分奇特,它由 个游览点构成,每个游览点都有一个糖果发放处,我们可以依次将游览点编号为 \(
阅读全文
摘要:[HNOI2001] 产品加工 题目描述 某加工厂有 A、B 两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成。由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工,所完成任务又会不同。 某一天,加工厂接到 个产品加
阅读全文
摘要:KMP算法学习笔记 声明:下文都以S串为原串,T串为模式串,字符串都以0起始 首先介绍暴力算法(BF) 暴力不难想,两个指针i,j,分别表示在S,T中匹配到了哪一位,当j匹配到T末尾时,表示查找成功,否则,j就回退到0 时间复杂度为O(nm) KMP算法 在介绍KMP算法之前,要引入一个函数:前缀函
阅读全文
摘要:莫队学习笔记 莫队算法是一种优雅的暴力,常用于询问多个区间信息 主要思想 考虑一个问题:要查询[l,r]区间的信息,那么显然和[l,r-1]和[l-1,r]区间有着很大一部分重合,那么我们就可以考虑从其他相近的区间通过两个指针L和R来转移 实现 把每次询问的区间给保存下来,离线来做,这样我们可以得到
阅读全文
摘要:Treap(树堆) 学习笔记(此处为带旋Treap) Treap简介 Treap是一种二叉搜索树,其中,权值val满足二叉搜索树的性质,节点优先级priority满足堆的性质(作用后面会讲到) Treap适用情况 因为属于二叉搜索树,所以可以维护二叉搜索树的信息,带旋Treap可以更好地控制树的深度
阅读全文