gender

套路题
发现数据范围很怪异。
显然(ln(1+A)=V)很小,可以枚举。
题目中有(K)条长度为(n)的链,这说明可以把图分成(n)层,且分成(n)层后每条链只有一个点在某一层
考虑dp。因为(K)很小,所以可以状压链上的每个点的状态。
(f_{i,j,S})表示链的前(i)层,(A=j),状态为(S)的最小代价。
考虑转移,枚举下一层的选择方案(T),用(f_{i,j,S})加上代价更新(f_{i+1,j+l,T}),其中(l)(S)(T)不同的位的个数。
发现每个点只有(2)种取值,所以考虑二元关系网络流。
设一个点被划分到(S)集合表示选M,划分到(T)集合表示选F。
状态(T)事实上是钦定了(i+1)层在链上点的状态,如果一个点被钦定成(i),且它选择(!i),代价加上(inf)
不在链上且在(i+1)层的点如果修改了性别(就是选择和原来相反的性别)则代价加上(c)
稳定关系((x,y))的限制是如果(x)原来选择了(i)(y)选择(!i),则有一定价值。
如果这个点选择了(!i),另一个点选择(i),则也有另外价值。
其他情况价值为(0)
用二元关系网络流解决。

原文地址:https://www.cnblogs.com/ctmlpfs/p/14941889.html