题意给出森林,让在放置的点数尽量少的情况下保证每条边都被点覆盖到(乍一看二分图匹配?),然后在此前提下再要求被两个点同时覆盖到的边最多。两个需要解决的的:1 怎么把这个多目标最优化解决了 2 怎么处理不同节点之间的影响
[训练指南]UVa11825 状压dp 集合问题 二进制状态枚举所有集合
感觉如果早知道那个快速枚举子集的算法的话其实也就很简单。。太弱了orz
这个问题可以抽象成,将n个集合划分成尽可能多的组,满足约束每个组里的集合之和(所有的相或)都是全集,在这里注意这里说的原本的集合是对应于题中的节点的,一个节点和与他相邻的所有节点这一坨东西算一个基本集合。N<=16,很容易想到用二进制数字来表示集合,比如P[1]=011010表示1节点对应的集合里有1,3,4这三个节点。然后要预处理出不同每个原来的集合之间相或的结果用cov表 继续阅读“[训练指南]UVa11825 状压dp 集合问题 二进制状态枚举所有集合”