摘要: 给定 \(n\) 个物品,每个物品有两个属性 \(a,b\),我们需要从里面选一些出来,求 \(\dfrac{\displaystyle\sum a_i}{\displaystyle\sum b_i}\) 的最小/大值。 更数学一点表述,我们可以将这个问题抽象为这样一个模型:已知数列 \(\{a_n 阅读全文
posted @ 2025-07-22 17:11 cold_jelly 阅读(22) 评论(0) 推荐(1)
摘要: 分层图,顾名思义,就是分成若干层的图,也就是一个立体结构,这一类题的难点在于如何根据题目信息建出合适的图。我们以例题分析。 例题 \(1\):P4568 [JLOI2011] 飞行路线:在普通单源最短路问题的基础上添加了 \(k\) 次“\(0\) 元券”机会。 首先对于样例先建出一层图: 考虑如何 阅读全文
posted @ 2025-07-22 10:57 cold_jelly 阅读(94) 评论(0) 推荐(1)
摘要: Floyd 算法求全源最短路 全源最短路问题是指对于一张图,要求图上任意两点之间的最短路径长度的问题。我们当然可以以每个节点为起点跑 \(n\) 遍单源最短路,但 Floyd 算法给出了一种更为简洁的求法。 我们按照 DP 的思想理解 Floyd 算法,设计 \(f(i,j)\) 表示从 \(i\) 阅读全文
posted @ 2025-07-22 09:10 cold_jelly 阅读(76) 评论(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 阅读(56) 评论(0) 推荐(1)
摘要: 前置知识:KMP 算法(了解思想)、Trie。 问题:给定 \(n\) 个模式串和 \(1\) 个文本串,求解有多少个模式串在文本串中出现过。 朴素的想法是做 \(n\) 次 KMP,但时间复杂度太高,难以接受,这时就要用到 AC 自动机了。 AC 自动机的基本思想 假设现在的文本串为 \(s=\t 阅读全文
posted @ 2025-07-18 20:05 cold_jelly 阅读(41) 评论(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 阅读(42) 评论(0) 推荐(1)
摘要: \(z\) 函数 对于字符串 \(s\)(下标从 \(0\) 开始),定义 \(z\) 函数 \(z(i)\) 的值为 \(s\) 与 \(s[i\sim |s|-1]\) 的最长公共前缀的长度,并且规定 \(z(0)=0\)。例如对于 \(s=\text{ABAAABC}\): \(z(0)\): 阅读全文
posted @ 2025-07-18 10:16 cold_jelly 阅读(29) 评论(0) 推荐(2)
摘要: 顾名思义,字典树就是一棵功能很像字典的一棵树。 我们在查单词时,往往是先按照首字母,再按照第二个字母,以此类推地查询我们想要的单词的。字典树通过将树的边赋为一个个字符,从而使我们能够一层层像查单词一样得到字符串的。 Trie 的基本结构 先放图哈: 在上图所示的 Trie 中,通过对于从根节点到叶子 阅读全文
posted @ 2025-07-17 21:39 cold_jelly 阅读(23) 评论(0) 推荐(1)
摘要: 字符串匹配 字符串匹配问题可以总结为下面这个问题: 给定字符串 \(s\) 和 \(t\),在 \(s\) 中寻找 \(t\)(这个子串)。 KMP 算法可以在 \(O(|s|+|t|)\) 的复杂度内求解该问题。 BF 算法 在 KMP 算法前,先看看暴力做法(BF 算法)。 不妨令问题中的 \( 阅读全文
posted @ 2025-07-17 20:40 cold_jelly 阅读(19) 评论(0) 推荐(2)
摘要: 前言 最近一直在做字符串的题,因此来写篇总结梳理一下【字符串】部分的知识点。 本文采用符号及解释 \(\Sigma\):字符集。例如全小写字母(\(|\Sigma|=26\)),数字符集(\(|\Sigma|=10\)); \(|s|\):字符串 \(s\) 的长度; \(s[i\sim j]\): 阅读全文
posted @ 2025-07-17 15:33 cold_jelly 阅读(22) 评论(0) 推荐(1)