摘要:
K-D Tree k-D Tree 是一种可以高效处理 k 维空间信息的数据结构。 k-D Tree 具有 BST 的形态,BST 上的每个结点都对应 k 维空间内的一个点。其每个子树对应一个 k 维的超长方体内。 实现 建树 若当前超长方体中只有一个点,返回这个点。 选择一 阅读全文
摘要:
DP 套 DP 主要思想是将内层 DP 的结果作为外层 DP 的状态进行 DP 。 可以看作一个 DP 自动机,每个点有出边,有起始状态和终止状态集合,DP 若干步之后在 DFA 上的某节点的方案数。 需要满足内层 DP 的转移结果很小,才能记录在状态中,有时需要通过一些技巧优化内层结果值域。 [A 阅读全文
摘要:
区间 DP 按分割点转移 P1880 [NOI1995] 石子合并 有 n 堆石子围成一圈,第 i 堆有 ai 个。每次可以选择相邻两堆石子合并,得分和新的石子数为两堆石子的数量和。求将所有石子合并成一堆的最小、最大得分。 n≤100 先破环为链,把 \( 阅读全文
摘要:
图论计数 Prufer 序列 Prufer 序列可以将一个带标号 n 个点的树用 [1,n] 中的 n−2 个整数表示,构建完全图的生成树与数列之间的双射。 构建:每次删去编号最小的叶子(一度点),然后在序列中记录其所连的点,重复 n−2 次后结束。 性质: 阅读全文
摘要:
插头 DP 插头 DP 主要用于处理一种基于连通性状压 DP 问题。 约定: 阶段:DP 的顺序。 轮廓线:已决策状态和未决策状态的分界线。 插头:一个格子存在某方向的插头,则其在这个方向与相邻格子相连。 主要思想是状压轮廓线上的状态,然后逐格转移。 实现技巧 状态表示 大多情况只需要用 0/1 来 阅读全文
摘要:
动态 DP 对于某些序列上或树上的 DP 问题,要求修改信息并重新求答案。此时,若每次修改后都重新 DP 比较费时,于是引入动态 DP。 广义矩阵乘法 定义矩阵乘法 A×B=C 为: Ci,j=∑Ai,k×Bk,j 阅读全文
摘要:
AC 自动机 ACAM 通常用于解决多模式匹配问题:给定若干模式串 T1∼m 与文本串 S ,需要统计 Ti 在 S 的出现情况。 ACAM 的结构融合了: Trie 结构:对所有的模式串建一棵 Trie 。 KMP 思想:对 Trie 树上所有的结 阅读全文
摘要:
回文自动机 PAM 是一种处理回文串的工具,每个节点都表示一个本质不同的回文串。 PAM 由两棵树组成,分别表示奇数长度的回文串与偶数长度的回文串。称两棵树的根为奇根和偶根,分别表示长度为 −1,0 的字符串,不表示任何实际的字符串,仅作为初始状态。 定义: fail 指针:指向当 阅读全文