这个只是一个作业而已, 写的远没有LeetCode解题报告那样详细,见谅。
题目为算法概论的Chapter8.9
证明:
可将顶点覆盖问题归约到碰撞集问题,顶点覆盖问题的目标是找到一个大小不超过 b 的点集合 H ,使得图中所有的边都至少与集合中的一个点关联,它是一个NP-完全问题。设无向图G=(V,E),对于图中每一条边 (vm,vn) ,设集合 Si={vm,vn} ,最终得到|E|个集合。
这样即可将顶点覆盖问题归约到碰撞集问题:
① 若存在满足要求的集合 H ,它与所有的 Si 都相交且规模不超过 b ,那么 H 也是满足顶点覆盖问题的点集合。
② 若不存在集合 H 与所有的 Si 相交且规模不超过 b ,那么图G中也不存在规模不超过 b 的顶点覆盖 H 。
综上所述,存在集合 H 与所有的 Si 相交且规模不超过 b ,当且仅当图G中存在规模不超过 b 的顶点覆盖。因此碰撞集问题是NP-完全问题。