03 2025 档案

摘要:区间 DP 按分割点转移 P1880 [NOI1995] 石子合并 有 \(n\) 堆石子围成一圈,第 \(i\) 堆有 \(a_i\) 个。每次可以选择相邻两堆石子合并,得分和新的石子数为两堆石子的数量和。求将所有石子合并成一堆的最小、最大得分。 \(n \leq 100\) 先破环为链,把 \( 阅读全文
posted @ 2025-03-26 11:56 wshcl 阅读(103) 评论(0) 推荐(0)
摘要:图论计数 Prufer 序列 P6086 【模板】Prufer 序列 Prufer 序列可以将一棵带标号 \(n\) 个点的树用 \(n - 2\) 个值域为 \(1 \sim n\) 的整数序列表示。具体地,每次删去编号最小的一度点,然后在序列中记录其所连的点,重复 \(n - 2\) 次后结束。 阅读全文
posted @ 2025-03-25 17:01 wshcl 阅读(152) 评论(0) 推荐(0)
摘要:构造杂题选做 加强限制 CF618F Double Knapsack 给你两个大小为 \(n\) 的可重集 \(A, B\) ,其中每个元素的大小 \(x\in [1,n]\)。请分别找出一个 \(A, B\) 的子集,使得元素和相等。 \(n \leq 10^6\) 考虑将子集加强为区间。 令 \ 阅读全文
posted @ 2025-03-21 16:01 wshcl 阅读(78) 评论(0) 推荐(0)
摘要:插头 DP 插头 DP 主要用于处理一种基于连通性状压 DP 问题。 约定: 阶段:DP 的顺序。 轮廓线:已决策状态和未决策状态的分界线。 插头:一个格子存在某方向的插头,则其在这个方向与相邻格子相连。 主要思想是状压轮廓线上的状态,然后逐格转移。 实现技巧 状态表示 大多情况只需要用 0/1 来 阅读全文
posted @ 2025-03-20 11:24 wshcl 阅读(112) 评论(0) 推荐(0)
摘要:动态 DP 对于某些序列上或树上的 DP 问题,要求修改信息并重新求答案。此时,若每次修改后都重新 DP 比较费时,于是引入动态 DP。 广义矩阵乘法 定义矩阵乘法 \(A \times B = C\) 为: \[C_{i, j} = \sum A_{i, k} \times B_{k, j} \] 阅读全文
posted @ 2025-03-18 10:33 wshcl 阅读(63) 评论(0) 推荐(0)
摘要:AC 自动机 ACAM 通常用于解决多模式匹配问题:给定若干模式串 \(T_{1 \sim m}\) 与文本串 \(S\) ,需要统计 \(T_i\) 在 \(S\) 的出现情况。 ACAM 的结构融合了: Trie 结构:对所有的模式串建一棵 Trie 。 KMP 思想:对 Trie 树上所有的结 阅读全文
posted @ 2025-03-15 09:16 wshcl 阅读(93) 评论(0) 推荐(0)
摘要:回文自动机 PAM 是一种处理回文串的工具,每个节点都表示一个本质不同的回文串。 PAM 由两棵树组成,分别表示奇数长度的回文串与偶数长度的回文串。称两棵树的根为奇根和偶根,分别表示长度为 \(-1, 0\) 的字符串,不表示任何实际的字符串,仅作为初始状态。 定义: \(fail\) 指针:指向当 阅读全文
posted @ 2025-03-13 20:48 wshcl 阅读(93) 评论(0) 推荐(1)
摘要:后缀自动机 字符串 \(S\) 的 SAM 是一个接受 \(S\) 的所有后缀的最小 DFA,其每个子串都对应了 SAM 上根开始的一条路径。 考虑 \(S\) 的任意非空子串 \(p\) ,记 \(\mathrm{endpos}(p)\) 为 \(p\) 在 \(S\) 中的所有结束位置,将 \( 阅读全文
posted @ 2025-03-12 10:46 wshcl 阅读(54) 评论(0) 推荐(0)