合集-算法总结

摘要:一些另类的树形背包 DP 总结 ——从两道例题剖析树形背包 DP 解法 总结题目 P4629 [SHOI2015] 聚变反应炉 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) P4516 [JSOI2018] 潜入行动 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn 阅读全文
posted @ 2024-07-09 13:22 Add_Catalyst 阅读(10) 评论(0) 推荐(0)
摘要:循环矩阵及其应用 引入 在信息学竞赛中,矩阵是一个非常常用的知识点,而其中矩阵乘法的时间复杂度为 \(O(n^3)\)。但是其中一些矩阵拥有特殊的构造,使得它能够更快的求解,例如我们今天需要了解的循环矩阵,它的求解复杂度可以优化到 \(O(n^2)\) 甚至 \(O(n\log_2{n})\)(但是 阅读全文
posted @ 2024-08-21 07:41 Add_Catalyst 阅读(136) 评论(0) 推荐(0)
摘要:概率 & 期望 DP 总结 前言 概率 & 期望 DP 的题目一般都较为明显,通常会直接指出需要你求的概率或期望值。 虽然这类题目是依赖于概率论,但实际上,通常概率或期望 DP 的状态、决策、转移是我们通过自己的认知和性质的分析就可以得出的,所以平时并不需要特别的畏惧概率或期望 DP。 概率 DP 阅读全文
posted @ 2024-08-25 07:38 Add_Catalyst 阅读(142) 评论(0) 推荐(1)
摘要:虚树学习笔记 定义 虚树(Virtual Tree):询问点与其 LCA 组成的树。 性质 假设询问点只有 \(k\) 个,那么虚树最多只含有 \(2k - 1\) 个结点。 这一性质使得我们能够排除很多无用状况,减小时间复杂度。 建树:单调栈建树 类似笛卡尔树,我们用一个栈来维护当前的右链,不过不 阅读全文
posted @ 2024-09-28 15:48 Add_Catalyst 阅读(136) 评论(0) 推荐(0)
摘要:跳表学习笔记 定义 跳表(跳跃表,Skip List),是一种基于有序链表的数据结构,通过引入随机化的思想,实现空间复杂度通常为 \(O(n)\),单次操作期望时间复杂度为 \(O(\log_2{n})\) 的插入、删除、查找、访问等功能。 原理 跳表的最基础实现如下图:(默认 升序 跳表,下同。) 阅读全文
posted @ 2024-10-10 14:56 Add_Catalyst 阅读(90) 评论(0) 推荐(1)
摘要:Lagrange 插值法 学习笔记 插值 定义 给定 \(n\) 个离散数据点(称为节点)\((x_k,y_k),k=1,2,...,n\)。对于 \(x,(x \neq x_k,k=1,2,...,n)\) ,求 \(x\) 所对应的 \(y\) 的值称为内插。 \(f(x)\) 为定义在区间 \ 阅读全文
posted @ 2024-10-16 15:52 Add_Catalyst 阅读(52) 评论(0) 推荐(0)
摘要:(广义)圆方树 & 仙人掌 学习笔记 前言 圆方树可用于分解仙人掌,同时也可以拿来处理点双,是一个不能错过的知识点。 实现 先对一个无向图跑 Tarjan 求出点双,然后定义: 圆点:就是原点。 方点:每个点双就是一个方点。 然后我们让方点与自己点双中的所有圆点都连上边,就得到了圆方树。 应用 实现 阅读全文
posted @ 2025-03-22 14:33 Add_Catalyst 阅读(19) 评论(0) 推荐(0)
摘要:网络流 学习笔记 前言 网络流中板子并不难,真正难的是复杂度的证明还有一大堆的二级结论,本笔记主要记录学习路上遇到的各种网络流技巧与结论,相关证明可以去 OI Wiki 看。 最大流 & 最小割 首先有一个基本定理:最大流等价于最小割。 Edmonds–Karp 算法 简称 EK 算法,是最最基础的 阅读全文
posted @ 2025-04-03 14:16 Add_Catalyst 阅读(13) 评论(0) 推荐(0)