POJ PKU 2516 最小费用流
(2010-09-01 19:26:40)
标签:
pojpku2516最小费用流it |
分类: 网络流 |
题目描述:
有k种商品,n个商店,m个提供商。
对于每一个商店有k个数字,表示这个商店需要各个物品的个数。
对于每一个提供商也有k个数字,表示这个提供商拥有各个物品的个数。
然后,对于每个物品k,都有n行m列的矩阵。
i行j列表示:
从j提供商向i商店运送一个k商品的代价是多少。
问你:
提供商能不能满足所有的商店需求。
能的话,输出最小的代价。
解题报告:
可以发现,各个物品总的代价是独立的。
所以对于每个物品独立的进行最小费用流处理。
源点s,连接所有商店,费用0,容量是各个商店对k物品的需求。
汇点t,所有提供商连接t,费用0,容量是各个提供商拥有k物品的个数。
商店i和提供商j连接,费用是j到i运送物品k的代价,容量是无穷。
代码如下:
#include<iostream>
using namespace std;
int n, m, k;
#define size 102
#define Max 0x7fffffff
struct edge{int from, to, val, next, cost;} e[5400];
int v[size], cnt, pre[size], pos[size], dis[size], que[size *
10];
bool vst[size];
void insert(int from, int to, int val, int cost)
{
}
bool spfa(int s, int t, int n)
{
}
int MinCostFlow(int s, int t, int n, int
&flow)
{