异或哈希
常用于快速判断两个集合是否相等。
给每种元素设置一个随机的 unsigned long long
哈希值,每个集合的哈希值是其元素的哈希值的异或和。
例题:
- P8819 [CSP-S 2022] 星战
- 【2025暑期ACM04】图计算
Schwartz-Zippel 定理
对于一个域 (通常为 域,其中 为大质数)下的 元 次多项式 ,若每个 均在 中独立等概率随机,则 的概率 。
感性理解,一元的情况下 有 个根,显然。
这个东西十分实用,常用于检验各种东西是否为 (例如通过行列式快速检验积和式是否为 )。
例题:
最大团的经典随机算法
随机一个加点顺序,按照这个顺序加点。若加进去后还是团则加进去,否则不加。这个东西实际上很难卡。
出现次数大于一半,每次随机化可以缩小一半错误率
例题:CF364D Ghd
题解
至少一半的数的因数,这启发我们想到随机化。
具体的,每次随机一个 ,那么 出现在是答案的倍数的集合中的概率是 ,枚举 的每一个因子作为答案判断是否可行,如可行则贡献给全局答案。
单次时间复杂度 ,随机 次可将错误率缩减到 ,如果不是特别脸黑就可以通过本题。
练习:CF1305F Kuroni and the Punishment
颜色随机映射
处理类似于颜色两两不同的限制时,可以选取一个较小的 并将颜色随机映射到 ,这样假设需要有 个两两不同的颜色则正确率是 的。