摘要: Dijkstra 朴素版本:每次找到所有节点中没有找过的且 \(dis_u\) 最小的节点,然后以它为中心分别遍历 \(v\in 1\to n\),如果存在边就用 \(dis_u\) 更新 \(dis_v\),限制搜索次数,适用于稠密图,边数 \(m\) 为 \(O(n^2)\) 级别的,时间复杂度 阅读全文
posted @ 2025-04-24 14:55 TBSF_0207 阅读(36) 评论(0) 推荐(0)
摘要: 有向图 SCC(强连通分量)计数 SCC 缩点后容易在新图中出现重边,这在某些题来说会导致错误的结果。一般来说我们可以如下处理: 显然首先对于 SCC 内连边是肯定不需要在新图中连出的。 使用 map<int,int> 记录 \((u,v)\) 是否出现过,连边 \(O(n\log n)\)。 先不 阅读全文
posted @ 2025-04-24 14:55 TBSF_0207 阅读(54) 评论(0) 推荐(0)
摘要: 前言:调死我了 2-SAT 算法内容 题意介绍 P4782 【模板】2-SAT 2-SAT,简单的说就是给出 \(n\) 个集合,每个集合有两个元素,已知若干个 \(\langle a,b \rangle\),表示 \(a\) 与 \(b\) 矛盾(其中 \(a\) 与 \(b\) 属于不同的集合) 阅读全文
posted @ 2025-04-24 14:53 TBSF_0207 阅读(17) 评论(0) 推荐(0)
摘要: 高斯-约旦消元法 应用需求 高斯消元法应用于一系列求解多元一次(多元线性)方程中,运用了类似于可以手搓的二元一次方程的思想。 基本操作 将待求解的方程组视为\(n\)行\(n+1\)列的矩阵,表示有\(n\)条方程,共有\(n\)个未知数,其中第\(n+1\)列表示方程常数位。 具体地: \[\be 阅读全文
posted @ 2025-04-24 14:53 TBSF_0207 阅读(33) 评论(0) 推荐(0)
摘要: 题目链接:P2572 [SCOI2010] 序列操作 前言:↑↓玩意害得我调了整整两个小时(Angry) 策略 结合最大字段和维护思想与区间赋值思想,加上懒标记赋值时的优先级次序,即可维护。 维护最大字段和 (很明显我并不是很熟所以拿出来单独讲) 接下来是最大字段和时间: 例题:【AcWing】24 阅读全文
posted @ 2025-04-24 14:53 TBSF_0207 阅读(24) 评论(0) 推荐(0)
摘要: 声明:本博客并不保证严谨全面,只是笔者的个人笔记,如有错误欢迎指出,也同时欢迎补充缺漏内容。 网络流最大初步 定义 P3376 【模板】网络最大流 什么是最大流 类比一个供水问题,有 \(s\) 作为自来水公司,\(t\) 作为供水地点,\(s\) 与 \(t\) 通过若干条有向边连接,每条边有一个 阅读全文
posted @ 2025-04-24 14:53 TBSF_0207 阅读(36) 评论(0) 推荐(0)
摘要: 前言:对着模板手敲笛卡尔树板子,这还真是写奇奇怪怪 DS 以来第一次没看别人的板子敲出来的。 笛卡尔树 Cartesian Tree 用法大概有在树上 DP,利用二叉树先序、中序、后序遍历等,一般都和区间最大值/最小值有关。 笛卡尔树的性质(小根堆为例):在笛卡尔树上两个节点 \(u,v\),\(\ 阅读全文
posted @ 2025-04-24 14:53 TBSF_0207 阅读(25) 评论(0) 推荐(0)
摘要: 二叉查找树定义 左子树所有节点权值小于根节点权值 右子树所有节点权值大于根节点权值 以左右子节点为根节点时子树同样满足上述条件 Splay(又称伸展树) (二叉查找树) 伸展操作 \(Splay(x)\) 把一个节点拎到它所在 Splay 的根的操作。 Zig(右旋)操作 令x为y的左儿子,则使y的 阅读全文
posted @ 2025-04-24 14:52 TBSF_0207 阅读(24) 评论(0) 推荐(0)
摘要: 二分图最大匹配 匈牙利算法 概念 二分图:将图划分为两个点集,使得同一点集中的点互相没有直接相连的边 判断方法(互相独立): 二分图中任意环的边数都是偶数 利用并查集辅助染色 跑搜索 匹配:在二分图中,找到一组边集,使得其中任意两条边都没有公共顶点 (令匹配边表示为 \(A\),未匹配边表示为 \( 阅读全文
posted @ 2025-04-24 14:52 TBSF_0207 阅读(152) 评论(0) 推荐(0)
摘要: 算法特点: \(O(n\sqrt n)\),离线,多数时候需要一点卡常寄巧(但其时间复杂度在完全随机的数据下还是较优秀的)(?),不能做强制在线(这不废话吗),以根号分块为基础,主体为指针操作。 基础莫队 P1972 [SDOI2009] HH的项链 rt,以前是可以用莫队做的,但是现在加入了加强数 阅读全文
posted @ 2025-04-24 14:51 TBSF_0207 阅读(32) 评论(0) 推荐(0)
摘要: 基础知识 树的重心 定义 定义一颗无根树,其中节点 \(u\) 的子节点编号分别为 \([1,n]\) ,且定义 \(siz_i\) 为节点 \(i\) 的以 \(u\) 为根下计算的子树大小, \(f_u=\max(siz_1,siz_2,...,siz_n)\) 重心即找到一个点 \(u\) 使 阅读全文
posted @ 2025-04-24 14:51 TBSF_0207 阅读(36) 评论(0) 推荐(0)
摘要: 本质上就是在做轮廓线 DP。这玩意是静态的,它能解决的东西轮廓线 DP 都能解决,它不能解决的东西轮廓线 DP 还能解决,所以学它干嘛。 下文集合运算 \(\oplus\) 统一表示按位异或,\(\cup\) 表示按位或(并集),\(\cap\) 表示按位与(交集)。 CF 原文 例题 求 \(F[ 阅读全文
posted @ 2025-04-24 14:51 TBSF_0207 阅读(42) 评论(0) 推荐(0)
摘要: 好文 数论推式子基础知识 Lucas定理 数论定理基础知识 正文 本文仅记录部分对笔者较为重要(且较为简单)的证明。 裴蜀定理 求证:\(\forall a,b,x,y,d\in\Z,a,b,d\neq 0,ax+by=d\) 有解的充分必要条件为 \(\gcd(a,b)|d\)。 考虑证明必要性, 阅读全文
posted @ 2025-04-24 14:50 TBSF_0207 阅读(42) 评论(0) 推荐(0)
摘要: 与其说是一类算法,不如说是一类 trick。CDQ 分治是一种考虑子问题及 \([l,r]\) 中划分出的两个子区间 \([l,mid]\) 与 \([mid+1,r]\) 分别产生贡献、组合产生贡献的思维方式。 主要有几个应用: 解决一类三维偏序问题,用外层排序解决第一维,用分治顺序(双指针)解决 阅读全文
posted @ 2025-04-24 14:49 TBSF_0207 阅读(26) 评论(0) 推荐(0)
摘要: 简记 可持久化 一种允许你查询并使用历史版本的数据结构,其家族成员包括但不限于可持久化平衡树,线段树,并查集(以可持久化线段树为基础)等。 线段树 适用于一些单点修改的题上。 其基本思路是将线段树动态开点后,先建一颗完整的线段树(如果没有初值也可以不建),然后每次更新链上的节点时,新建节点并将不修改 阅读全文
posted @ 2025-04-24 14:46 TBSF_0207 阅读(26) 评论(0) 推荐(0)
摘要: 树状数组(Binary Index Tree) \(\texttt{Tips}\):\(\text{lowbit}(x)\) 表示 \(x\) 二进制位下最小的满足 \(k\in \N,v=2^k,x\cap v=v\) 的 \(v\),其中 \(\cap\) 为按位与,文中所有“前面的位”表示更高 阅读全文
posted @ 2025-04-24 14:46 TBSF_0207 阅读(24) 评论(0) 推荐(0)
摘要: 线段树合并 适用范围 针对树形问题,当每一个节点都要开一个数组维护信息,且儿子到父亲的转移是相同位操作,可使用线段树合并。 注意:线段树合并一般适用于子树信息维护。 前置知识 权值线段树 定义:对一个序列 \([1,n]\) 进行建树,但是叶子节点表示该节点所对应的值出现的次数。 基础应用如可持久化 阅读全文
posted @ 2025-04-24 14:46 TBSF_0207 阅读(25) 评论(0) 推荐(0)
摘要: 后缀树 Suffix Tree 实际上是把字符串 \(S\) 的所有后缀 \(\mathrm{suffix}(i)\) 以 \(O(n^2)\) 的空间用字典树存储下来的树形结构,费时费力费空间,非常不好用。作为一个启发点,我们把所有后缀从第一个字符到最后一个字符接到 Trie 上,那么对于任意一个 阅读全文
posted @ 2025-04-24 14:46 TBSF_0207 阅读(66) 评论(1) 推荐(1)
摘要: 矩阵乘法和矩阵幂 一个 \(m \times n\) 的矩阵是一个由 \(m\) 行 \(n\) 列元素排列成的矩形阵列。即形如 \[A = \begin{bmatrix} a_{1 1} & a_{1 2} & \cdots & a_{1 n} \\ a_{2 1} & a_{2 2} & \cd 阅读全文
posted @ 2025-04-24 14:45 TBSF_0207 阅读(49) 评论(0) 推荐(1)
摘要: 哈希 basic 将字符串转换为模意义下的哈希编码的方法。 具体地,给每个字母赋予一个权值,再当成\(base\)进制处理。主要用途是判断两种状态是否等价。 例:\(abba\)中令\(a\)为\(0\),\(b\)为\(1\),则\(hash(babba)=1\times base^4 +0\ti 阅读全文
posted @ 2025-04-24 14:44 TBSF_0207 阅读(21) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2025-04-24 14:44 TBSF_0207 阅读(1) 评论(0) 推荐(0)
摘要: 整体二分能解决的问题一般具有如下特点: 询问的答案具有可二分性。 修改对判定答案的贡献互相独立,修改之间互不影响效果。 修改如果对判定答案有贡献,则贡献为一确定的与判定标准无关的值。 贡献满足交换律,结合律,具有可加性。 题目允许使用离线算法。 ——许昊然《浅谈数据结构题几个非经典解法》 基本思路 阅读全文
posted @ 2025-04-24 14:43 TBSF_0207 阅读(33) 评论(0) 推荐(0)