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\)
用二元关系网络流解决。

posted @ 2021-06-27 19:45  celerity1  阅读(150)  评论(0编辑  收藏  举报