随机?哈希?
传送门
题解
首先,按照套路,先随便求出原图的一棵生成树。
对于每一条非树边,我们给他随机rand一个随机数作为哈希值。
对于每一条树边,定义它的哈希值为所有覆盖它的非树边的哈希值的异或和。
对于一个边的集合,定义它的哈希值为它所包含的所有边的哈希值的异或和。
对于任意一个给定的删边集合,如果存在一个全部由树边构成的子集的哈希值等于某一个全部由非树边构成的子集的哈希值,那么删了该集合中所有边之后,原图不连通。由于给定的删边集合很小,暴力枚举子集即可。
为了保证正确性,采取双哈希会比较合适。
代码
1 |
|