一个有向图,每个点有点权,点权可正可负。对于任意一条有向边i和j,选择了点i就必须选择点j,你需要选择一些点使得得到权值最大。
最大闭权和子图
建图
- s和点之间连一条为边权为点权的边。
- 使所有非负权点(负权点)连向t,边权为点权的绝对值。
- 若需要选y才能选x,连一条由x到y的边,边权是∞。
建模分析
考虑点的依赖关系,若将费用转化为流量,最后的满流的最大流即所有需要的花费。
结论
最大点权和=正权点和-最小割(最大流)
题解
- 最大闭权和子图
- 转化为最大流
- 最后a[i]为正的点即为选择的点
代码
1 |
|