高级算法 (Spring 2026)/作业1
- 每道题目的解答都要有完整的解题过程,中英文不限。
- 我们推荐大家使用LaTeX, markdown等对作业进行排版。
- 没有条件的同学可以用纸笔完成作业之后拍照。
- 本门课的所有作业中如果出现了课程中(包括课件中和作业题目中)的算法或者概念或者符号,则禁止使用自己发明的说法或者符号,必须与课程内容保持一致。
- Karp-Rabin Algorithm 使用一个 equality testing 算法作为黑盒子以达成 [math]\displaystyle{ O(m+n) }[/math] 的时间复杂度。分别讨论用本门课中介绍的其他 equality testing 算法替代 Karp-Rabin Algorithm 的 equality testing 算法能否达成 [math]\displaystyle{ O(m+n) }[/math] 的时间复杂度,并自己找到一个没有在本门课中出现的 equality testing 算法(你需要使用正规 citation 指出该算法的来源),尝试用它替换 Karp-Rabin Algorithm 的 equality testing 算法,你需要尽可能完备地说明为什么能或者不可能达成 [math]\displaystyle{ O(m+n) }[/math] 的时间复杂度。
- 解释 Morris’ counter 背后的直觉。尝试应用 [math]\displaystyle{ (1+\alpha)^{-X} }[/math] 的思路得到更好的结果。
- 使用 median trick 来优化 min sketch 和 Flajolet-Martin Algorithm 和 Bottom-k algorithm。