SPOJ 371 BOXES 附带最终版MCMF模板
非常感谢这道题,准确的来说应该是这道题的数据。这道题其实是很简单的。
题意:
一堆箱子围成一个圈,每个箱子里面初始没有或有几个球。要求最后每个箱子里面最多一个球。每次转移球只能转移到相邻的箱子,转移一个球,需要花费1。问最小花费。
思路:
最暴力的思路是每个球对其他所有球都建立一条边,费用为最短距离。
但是有个显然的特点是,a -> b 与 a-> k , k-> b 的花费是相同的。所以我们只要在相邻的箱子建边即可。容量 inf ,费用为 1 。
建立源点连接有球的箱子,容量为 球 数,花费为 0 。箱子到汇点容量为 1 ,花费为 0 。
AC Code
#include