摘要: 529. 宝藏 数据范围 \(n\leq 12\),可以考虑状压 DP。 先考虑朴素 DP。 令 \(f[i][j][k]\) 表示选择的点集为 \(i\),最后一层选择的点集为 \(j\),倒数第二层选择的点集为 \(k\)。 空间上,状态数是 \(O(2^{36})\),已经炸了;时间上,时间复 阅读全文
posted @ 2026-08-24 20:47 zheyutao 阅读(16) 评论(0) 推荐(0)
摘要: AcWing 487. 金明的预算方案 将每个主件和属于它的附件分为一组,每组有四种互斥的组合,最多只能选其中 1 种组合,问题就转化为了分组背包问题。 实现分组背包时,先枚举物品,再枚举体积,最后枚举决策(往往是二进制枚举)。 时间复杂度为 \(O(n^2m)\)。\(n\) 为物品总数,\(m\ 阅读全文
posted @ 2026-08-22 18:21 zheyutao 阅读(12) 评论(0) 推荐(0)
摘要: AcWing 479. 加分二叉树 二叉树节点向下投影,映射成的数组序列就是中序遍历序列。 定义 \(f[i][j]\) 表示区间 \([i,j]\) 中的二叉树的分值最大值。 按根节点 \(k\) 的位置划分集合,得到转移方程: \[f[i][j]=\max_{i\leq k\leq j}(w[k 阅读全文
posted @ 2026-08-21 16:23 zheyutao 阅读(20) 评论(0) 推荐(0)
摘要: AcWing 482. 合唱队形 对于时间限制为 1s 的题目,往往时间复杂度 1e8 就能过。 钦定 \(k\) 为第 \(k\) 类合唱队形的最高点,容易发现这种分类方法是不重不漏的。 注意到,\(最少出列的人数 = n - 最多保留的人数\)。 由于 \(k\) 以前的点和 \(k\) 之后的 阅读全文
posted @ 2026-08-19 17:29 zheyutao 阅读(9) 评论(0) 推荐(0)
摘要: T1 二分图匹配的板子题。 T2 普通莫队算法。 对于每个询问区间 \([L,R]\),长度 \(len=R-L+1\),那么从该区间任选 \(2\) 个数的方案数为: $$C_{len}^2=\frac{len(len-1)}{2}$$。 维护 \(add\) 函数和 \(del\) 函数。定义 阅读全文
posted @ 2026-07-24 22:17 zheyutao 阅读(12) 评论(0) 推荐(0)
摘要: 如何 DFS 到某一节点后,利用无序的子树 Hash 值,使得同构的树 Hash 值相同,不同构的 Hash 值尽量不同,且可以 $O(1)$ 地计算删除部分子树后的 Hash 值? 树结构哈希,简称树哈希,就是解决这类问题的方法。 以某个结点为根的子树的 Hash 值,就是以它的所有儿子为根的子树的 Hash 值构成的多重集的 Hash 值,即 $$H(u)=f(\{H(v)|v \in son(u)\})$$ 其中 $H(u)$ 表示以 $u$ 为根的子树的 Hash 值,$f$ 是多重集的 Hash 函数。 阅读全文
posted @ 2026-02-17 21:41 zheyutao 阅读(56) 评论(0) 推荐(1)
摘要: ## 引入 矩阵哈希,又称二维前缀哈希。联系之前学习过的 [字符串哈希](https://www.cnblogs.com/zheyutao/p/19587765/StringHash),不难得出矩阵哈希的实质:将每个不同的矩阵映射为不同的整数,期望 $O(1)$ 地比较矩阵是否相同。 对于一个 $n$ 行 $m$ 列的矩阵 $A$,定义它的矩阵 Hash 值为: $$\sum_{i=1}^{n}\sum_{j=1}^{m}A_{i,j} \ p_x^{n-i}p_y^{m-j}$$ 类似于二维前缀和的推导过程,我们得出以下两条矩阵哈希的核心结论: 阅读全文
posted @ 2026-02-10 22:10 zheyutao 阅读(43) 评论(0) 推荐(1)
摘要: 从定义可以看出,字符串 Hash 函数的实质是:把每个不同的字符串转化为不同的整数,希望 $O(1)$ 判断两个字符串是否相等。 然而事实上,经常会出现两个不同的字符串映射到相同的 Hash 值的现象,称为 **哈希冲突**。由此引出哈希函数两条最重要的性质。 > **性质:** 在 Hash 函数值不一样时,两个字符串一定不一样; 在 Hash 函数值一样时,两个字符串不一定一样。 对于一个长度为 $l$ 的字符串 $s$,定义其多项式 Hash 函数为:$$f(s) = \sum_{i=1}^l s[i] \times p^{l-i} \pmod M$$ 阅读全文
posted @ 2026-02-08 17:21 zheyutao 阅读(278) 评论(0) 推荐(2)
摘要: 无向图的连通性,主要研究割点和桥。本文介绍了割点和桥的定义及其延伸概念,介绍了如何用 Tarjan 算法求解割点与桥,包括对于图是否有重边的讨论。提供了相应的好题作为例题。普及+/提高 阅读全文
posted @ 2025-12-07 19:57 zheyutao 阅读(1054) 评论(0) 推荐(1)
摘要: 强连通分量是极大强连通子图,通常使用 Tarjan 算法来求解。本文介绍了 DFS 生成树等概念以更好地理解 Tarjan 算法的流程。普及+/提高 阅读全文
posted @ 2025-11-30 20:29 zheyutao 阅读(38) 评论(0) 推荐(1)