合集-算法

摘要:CDQ分治 对比普通分治 把一种问题划分成不同子问题, 递归处理子问题内部的答案, 再考虑合并子问题的答案。 再看CDQ分治 有广泛的应用, 但我不会。 但在接下来的题目体会到大概: 将可能产生的对于答案的贡献分为两类: f(l,mid)f(mid+1,r) 内部产生的 阅读全文
posted @ 2023-11-17 11:39 qqrj 阅读(57) 评论(0) 推荐(0) 编辑
摘要:分块 理解 优雅暴力, 对序列进行划分, 进行一些预处理, 总而减少时间复杂度, 有技术含量的是通过列式子, 再通过数学方法或者其他奇奇怪怪的方法, 求出合适的块长。 直接上题目 教主的魔法 题解 块长定为 n , 针对每一块内部进行排序。 对于修改操作, 整块就直接维护一个增量 阅读全文
posted @ 2023-11-30 14:56 qqrj 阅读(42) 评论(0) 推荐(0) 编辑
摘要:莫队算法 莫队算法是由莫涛发明的离线算法, 有很多应用 , 实现起来也较为简单, 可以称作优雅的暴力, 大部分情况是将所有询问离线下来,通过合理的排序, 然后进行 O(1) 的转移, 由于是通过分块排序和 O(1) 转移, 所以看起来既暴力又透出一丝优雅。 普通莫队 直接上题吧 P1 阅读全文
posted @ 2024-01-01 16:35 qqrj 阅读(46) 评论(0) 推荐(1) 编辑
摘要:FHQ平衡树 FHQ平衡树是一棵treap, 考虑treap都有的性质。 treap 是一棵笛卡尔树, 同时具有堆的性质, 和BST的性质, 并且每个节点权值不同的 treap 的形态是固定的。 treap的堆权值(pri)完全随机时, treap的树高期望为 O(logn)阅读全文
posted @ 2024-01-01 16:37 qqrj 阅读(18) 评论(0) 推荐(0) 编辑
摘要:AC自动机 阅读全文
posted @ 2024-01-01 16:37 qqrj 阅读(11) 评论(0) 推荐(0) 编辑
摘要:数学 1.斐波那契数列: f(i)f(i+3)f(i+1)f(i+2)=(1)i1 阅读全文
posted @ 2024-03-09 08:01 qqrj 阅读(26) 评论(0) 推荐(0) 编辑
摘要:数论 lucas定理 (nm)modp=(n/pm/p)(nmodpmmodp) 数论分块 数论分块可以快速计算一些含有除法向下取整的和式(即形如 \(\sum_{i=1}^nf(i)g(\left\lfl 阅读全文
posted @ 2024-03-09 09:56 qqrj 阅读(15) 评论(0) 推荐(0) 编辑
摘要:简述 全局第k小 线段树二分 树状数组倍增 区间第k小 主席树 划分数 阅读全文
posted @ 2024-03-16 07:51 qqrj 阅读(26) 评论(0) 推荐(0) 编辑
摘要:dfs序 定义 dfs序是指:每个节点在dfs深度优先遍历中的进出栈的时间序列。 序列 树上路径 任意子树都是连续的。例如假设有个子树BEFK,在序列中对应的部分是:BEEFKKFB;子树 CGHI ,在序列中对应的部分是:CGGHHIIC 。 任意点对 \((a,b 阅读全文
posted @ 2024-03-16 12:02 qqrj 阅读(45) 评论(0) 推荐(0) 编辑
摘要:历史版本和线段树 功能 可以累计所有历史版本的答案, 可以解区间子区间问题 算法 先上题目: Good Subsegments 题意: 求解 (l,r) 区间里“好的”子区间个数。 “好的”定义为区间内元素排序后是连续的。 思路: 考虑没有重复的数, 所以当一个区间是“好的”相当于\(ma 阅读全文
posted @ 2024-03-31 10:09 qqrj 阅读(518) 评论(0) 推荐(0) 编辑
摘要:左偏树 定义: 左偏树是一个堆, 具有堆的性质, 并且是左偏的 如果一个点只有左儿子或右儿子, 那么就称它为外节点, 定义一个结点的 dist 等于这个点到最近外节点的距离加 1 。特殊的, 外节点 dist 等于 1 。 左偏性质: 每个节点的左儿子 \(dist\ 阅读全文
posted @ 2024-04-08 16:26 qqrj 阅读(32) 评论(0) 推荐(0) 编辑
摘要:同余最短路 是一种通过同余把状态分类, 再通过建图跑最短路解决问题的算法。可以高效率解决一些特定的问题。 非常的奇妙。 算法 鉴于学不懂, 所以直接搬 oiwiki 的题吧。 呜呜呜。 P3403 跳楼机 有一栋高为 h 的楼, 初始在一楼, 每次可以向上移动 x, \(y 阅读全文
posted @ 2024-04-12 18:57 qqrj 阅读(21) 评论(0) 推荐(0) 编辑
摘要:区间最值操作, 历史最值问题 来源 吉老师2016集训队论文, oiwiki, 网络上各种博客。 概述 区间最值操作指的是: 将所有的i (l,r)ai=minmax(ai,k)。 历史最值问题指的是: 新定义一个数组 b[], \(b[i] 阅读全文
posted @ 2024-04-28 15:26 qqrj 阅读(121) 评论(0) 推荐(0) 编辑
摘要:Splay树 Splay树又名伸展树, 是tarjan为LCT而发明的平衡树, 通过旋转操作维护二叉搜索树的高度平衡, 其实不管时间复杂度的证明, Splay树挺简单的。 均摊复杂度 O(logn)(需要用到势能分析), 可以区间操作, 不能可持久化, 常数较大(大于FHQtreap), 但 阅读全文
posted @ 2024-05-06 10:55 qqrj 阅读(35) 评论(0) 推荐(0) 编辑
摘要:Link Cut Tree 简称LCT(不是Li Chao Tree), 是一种非常强大的数据结构。 声明 该博客写来很大部分目的是帮助自己理解, 笔者水平有限, 没办法完全原创, 有很多内容源自于OI-wiki,和网上博客, 见谅。 功能 考虑一些问题: 树上单点查, 树上路径修改, 这是树上差分 阅读全文
posted @ 2024-05-07 08:50 qqrj 阅读(19) 评论(0) 推荐(0) 编辑
摘要:Slope trick 阅读全文
posted @ 2024-05-10 15:27 qqrj 阅读(10) 评论(0) 推荐(0) 编辑
摘要:珂朵莉树 这个名字我猜是来源于初次诞生这个算法的题目->Willem, Chtholly and Seniorious 算法 适用于数据随机, 并且有区间推平操作, 也就是区间赋值操作, 就可以用set维护, 达到优秀的 O(nlogn) 时间复杂度。 定义 struct Node{ int 阅读全文
posted @ 2024-05-13 08:51 qqrj 阅读(13) 评论(0) 推荐(0) 编辑
摘要:网络流 主要分为以下三大问题: 网络最大流问题 网络最小割问题 最小费用最大流问题 现在考得更难的还有模拟网络流, 运用网络流思想, 来解决一些神秘问题。 算法 接下来我会讲解一些通过找增广路找最大流的算法, 也就是Dinic和EK算法。 最大流最小割定理 最大流最小割定理: 对于任意网络 \(G 阅读全文
posted @ 2024-05-17 09:12 qqrj 阅读(16) 评论(0) 推荐(0) 编辑
摘要:数论分块 大部分内容来源于OI-WIKI 引理1: \(\forall a,b,c\in\mathbb{Z},\left\lfloor\frac{a}{bc}\right\rfloor=\left\lfloor\frac{\left\lfloor\frac{a}{b}\right\rfloor}{ 阅读全文
posted @ 2024-06-06 20:55 qqrj 阅读(34) 评论(0) 推荐(0) 编辑

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