摘要
$n$ 个人,选取一个子集,选人有代价,两人同时选有收益,二选一有损失,求最大收益。
Pickupwin 知道这是最小割,但不会建图
题面
题解
最小割
每个人建一个点,用该点与 $S$ 或 $T$ 连通表示不取或取,割断边要支付代价。
可以将两人同时选的收益转化为选人的收益和二选一的代价:
用 $X_i\in{0,1}$ 表示不选/选,则 $X_i\times X_j=\frac{1}{2}(X_i+X_j-[X_i\neq X_j])$
于是点 $i$ 与 $S$ 连边 $A_i$ ,与 $T$ 连边 $\sum_j E_{i,j}$
点 $i$ 与点 $j$ 连边 $2\times E_{i,j}$ (均为无向边)
求最小割 $Min$ , $Ans=\sum_{i,j} E_{i,j}-Min$
代码
1 | //https://www.luogu.com.cn/problem/P1791 |
后记
其实 $0\leq X_i\leq 1$ , $\max \sum_{i,j} X_iX_jE_{i,j}-\sum_{i,j} [X_i>X_j]E_{i,j}-\sum_{i}X_iA_i$ 是比较经典的线性规划式子,但 Pickupwin 发现自己不会线性规划转网络流了 TAT
求大佬指点 [可怜]