摘要: 2-SAT 问题的基本模型与建图方法 考虑这样一个问题:给定 \(n\) 个 bool 变量,以及 \(m\) 个条件,每个条件表述为两个变量之间的一条限制关系,求满足所有限制条件的 \(n\) 个 bool 变量的一组合法解。 这个问题被称为 2-SAT 问题。其最原始的最板的问题是: 给定 \( 阅读全文
posted @ 2025-07-24 19:57 cold_jelly 阅读(15) 评论(0) 推荐(1)
摘要: 强连通分量是有向图中的重要概念。 对于有向图 \(G=(V,E)\),如果 \(\forall u,v\in V\),既能从 \(u\) 走到 \(v\),又能从 \(v\) 走到 \(u\),那么称有向图 \(G\) 是强连通的,而有向图里的极大强连通子图被称为该有向图的一个强连通分量(SCC)。 阅读全文
posted @ 2025-07-23 20:15 cold_jelly 阅读(83) 评论(3) 推荐(3)
摘要: 差分约束系统及其解的存在性 考虑给定 \(n\) 元一次不等式组: \[\left\{\begin{matrix} x_{i_1}-x_{j_1}\le C_1 \\ x_{i_2}-x_{j_2}\le C_2 \\ \dots \\ x_{i_k}-x_{j_k}\le C_k \end{mat 阅读全文
posted @ 2025-07-23 10:57 cold_jelly 阅读(29) 评论(0) 推荐(1)
摘要: 对于有权无向图 \(G=(V,E)\),称由 \(G\) 中全部 \(n\) 个顶点以及 \(n-1\) 条边构成的连通图 \(G'\subset G\) 为图 \(G\) 的一棵生成树,而图 \(G\) 的所有生成树里边权和最小的被称为图 \(G\) 的最小生成树(MST)。 Kruskal 算法 阅读全文
posted @ 2025-07-22 21:53 cold_jelly 阅读(31) 评论(2) 推荐(1)
摘要: 给定 \(n\) 个物品,每个物品有两个属性 \(a,b\),我们需要从里面选一些出来,求 \(\dfrac{\displaystyle\sum a_i}{\displaystyle\sum b_i}\) 的最小/大值。 更数学一点表述,我们可以将这个问题抽象为这样一个模型:已知数列 \(\{a_n 阅读全文
posted @ 2025-07-22 17:11 cold_jelly 阅读(14) 评论(0) 推荐(1)
摘要: 分层图,顾名思义,就是分成若干层的图,也就是一个立体结构,这一类题的难点在于如何根据题目信息建出合适的图。我们以例题分析。 例题 \(1\):P4568 [JLOI2011] 飞行路线:在普通单源最短路问题的基础上添加了 \(k\) 次“\(0\) 元券”机会。 首先对于样例先建出一层图: 考虑如何 阅读全文
posted @ 2025-07-22 10:57 cold_jelly 阅读(48) 评论(0) 推荐(1)
摘要: Floyd 算法求全源最短路 全源最短路问题是指对于一张图,要求图上任意两点之间的最短路径长度的问题。我们当然可以以每个节点为起点跑 \(n\) 遍单源最短路,但 Floyd 算法给出了一种更为简洁的求法。 我们按照 DP 的思想理解 Floyd 算法,设计 \(f(i,j)\) 表示从 \(i\) 阅读全文
posted @ 2025-07-22 09:10 cold_jelly 阅读(47) 评论(0) 推荐(1)
摘要: 前置知识:图的基本概念、图的存储、图的遍历。 注 \(1\):以下对于图 \(G=(V,E)\),统一用 \(n=|V|\) 表示点数、\(m=|E|\) 表示边数,且默认 \(G\) 中节点按照 \([1,n]\) 编号。 注 \(2\):函数 \(dist(i,j)\) 表示节点 \(i\) 到 阅读全文
posted @ 2025-07-21 20:47 cold_jelly 阅读(35) 评论(0) 推荐(1)
摘要: 前置知识:KMP 算法(了解思想)、Trie。 问题:给定 \(n\) 个模式串和 \(1\) 个文本串,求解有多少个模式串在文本串中出现过。 朴素的想法是做 \(n\) 次 KMP,但时间复杂度太高,难以接受,这时就要用到 AC 自动机了。 AC 自动机的基本思想 假设现在的文本串为 \(s=\t 阅读全文
posted @ 2025-07-18 20:05 cold_jelly 阅读(17) 评论(0) 推荐(1)
摘要: 回文串 通俗地讲,如果一个字符串正着读和反着读都一样,那么这个字符串被称为回文字符串,简称回文串。也就是说,如果字符串 \(s\) 满足: \[\boxed{\forall i\in [1,|s|],s[i]=s[|s|-i+1]} \]则 \(s\) 为回文串。 对于一个回文串 \(s\),如果其 阅读全文
posted @ 2025-07-18 16:19 cold_jelly 阅读(26) 评论(0) 推荐(1)