如何使用max flow解决这个问题?

时间:2013-10-31 09:01:43

标签: algorithm max-flow

C1城市愿意出售一些商品,其他C2城市愿意购买一些商品(每个城市可以出售或购买商品,但不能同时出售或购买)。每个销售城市只会将商品出售给一个城市,每个购买城市只会从一个城市购买商品。

您的目标是将自私城市连接起来,使交换货物的数量最大化。

困难的是每个城市只能向/从一个城市出售/购买商品的限制。

1 个答案:

答案 0 :(得分:1)

您必须使用最低成本最大流量来解决此问题。使用流量1在每两个城市之间添加边缘,并且对该城市对的销售和购买量的最小值进行抵消。例如,如果您销售城市A愿意购买X单元并购买城市B愿意购买Y单位,那么计算Z = min(X, Y)并在A和B之间添加流量1和成本-Z