此题一开始想错了算法,直接将k个物品放在一个网络中求了一次最小费用。直接TLE。。。。后来看了DISCUSS发现对于每一种物品分开求最小费用最大流。这样就降低了点的数量。每次费用流最坏的情况就是102个点,而之前一次求的话点最坏可能到5000,边的数量更加恐怖。。。。。。
建图。
对于第k种物品
1:第i个商店和源点连,容量为相应物品的需求,费用为0
2:第i个仓库和汇点连,容量为相应的物品库存,费用为0
3:每一个商店和每一个仓库分别连线,容量INF,费用为相应的耗费。
这里注意。对于每种商品如果供小于求,那么我们就可以直接判断不可能,并且不去计算费用流了。但这里要注意把所有数据读完
Minimum Cost
Time Limit: 4000MS |