摘要: 之前忘写了。。。赶紧补一篇。我是煞笔。 是什么 字典树(trie),可以理解为把字典建成树。 为什么这么说?(我哪知道) 如下: app,add,bye (1) / \ a b / \ \ p d y / \ \ p d e 欸,你别说,你还真别说,果然是“字典树”。 那字典树是用于干什么的? 给一 阅读全文
posted @ 2026-08-19 21:01 _T_M_T 阅读(4) 评论(0) 推荐(0)
摘要: KMP Loading. . . . . . 是什么 KMP 算法是一种改进了的字符串匹配算法,用来快速找出一个短字符串(模式串)在另一个长字符串(文本串)中出现的所有位置。这个算法是由$ \textbf{D.E.Knuth,J.H.Morris 和 V.R.Pratt} $这三个大神犇发明的。 为 阅读全文
posted @ 2026-07-28 11:14 _T_M_T 阅读(4) 评论(0) 推荐(0)
摘要: 前情提要 这其实是我在没学马拉车,只看题解的前提下写出来的依托答辩。 正题 下面进入正题。咳咳 是什么 马拉车?不就是马拉着车吗? 其实就是Manacher的音译。 Manacher算法是字符串的算法之一,是用于计算一个字符串里的最长回文串长度的算法。 example: aaa的最长回文串长度为 \ 阅读全文
posted @ 2026-07-27 19:36 _T_M_T 阅读(8) 评论(0) 推荐(0)
摘要: 合集 是什么 顾名思义,就是有个背包,要拿来装东西,背包容量是有限的。你要决定要装什么东西进去 (为什么是你)。 有三种背包: 01背包:每个物品只能选一次(也就是只有一个)。 完全背包:每个物品可以选无限次(也就是有无限个)。 多重背包:每个物品有数量上限,第 \(i\) 个物品最多选 \(c_i 阅读全文
posted @ 2026-07-21 20:47 _T_M_T 阅读(8) 评论(0) 推荐(0)
摘要: 是什么 bitset 是 C++ 标准库提供的固定大小的位序列容器,用于高效存储和操作二进制位。(这么高级) 核心要点: 大小在编译期确定,通过模板参数 N 指定 每个位只占 1 bit 内存,远优于 bool 数组(每个占 1 字节)(这么小!) 原生支持位运算(与、或、异或、取反、左移、右移)( 阅读全文
posted @ 2026-07-19 23:38 _T_M_T 阅读(16) 评论(0) 推荐(0)
摘要: 合集 是什么 线性dp是一维的。 状态是一维的,或者能压成一维的,递推方向只有一个——从左往右,或者从前往后,不回头。 算 \(dp_i\) 的时候,只用得着 \(i\) 之前的信息,不会突然跳到后面去。这是它跟区间 DP、树形 DP 最根本的区别。 常见的那些题:LIS、LCS、最大子段和、编辑距 阅读全文
posted @ 2026-07-17 21:06 _T_M_T 阅读(14) 评论(0) 推荐(0)
摘要: 线性DP 背包DP 区间DP 状压DP 数位DP 树形DP 阅读全文
posted @ 2026-07-17 21:04 _T_M_T 阅读(11) 评论(0) 推荐(0)
摘要: 题外话 之前学了DP ,感觉学了跟学了一样。。。重学一遍,赶紧来写一篇学习NOTE。 下面进入正题。 是什么? 动态规划(Dynamic Programming‌),也就是DP。 DP是一种把复杂问题拆分成重叠子问题、通过填表避免重复计算的算法思想,常用于求最短路、背包问题、编辑距离等。 “公式”: 阅读全文
posted @ 2026-07-17 21:02 _T_M_T 阅读(9) 评论(0) 推荐(0)
摘要: 题外话 天杀的数论!!! 正题 下面进入正题。。。 是什么? 组合数学,其实就是排列组合(为什么组合有这么多内容,怨),还有两个重要的原理——“加法原理”和“乘法原理”。 加法原理 完成一件事有\(n\)种方法,\(a_i\)代表第\(i\)种方法的数目,那么就一共有:\(S=\Sigma_{i=1 阅读全文
posted @ 2026-07-09 21:00 _T_M_T 阅读(20) 评论(0) 推荐(1)
摘要: 刚学了扫描线,来写个笔记。 是什么? 扫描线,顾名思义,就是用线去扫描图形。 那扫描线是干什么的呢? 一般扫描线都用于计算 很多重合在一起的矩形 的总占地面积/外围的周长。 那它是怎么扫的呢? 给个图: 就是用一根线从左往右(或从下往上)扫过整个图形,与图形接触的部分为当前这一块的长(或宽),而扫过 阅读全文
posted @ 2026-07-08 22:06 _T_M_T 阅读(22) 评论(0) 推荐(1)