网络流模板----最小费用最大流

最小费用最大流的思路非常简单

用flow储存流量,cost储存费用

每一次跑一次最短路,最短路用来寻找最小费用,然后P数组用来记录路径

寻找完最短路后需要在路径中找最小流量,然后修改flow的值

//需提前定义flow,cost,p,dis数组
void spfa(int s,int t)
{
    queue q;
    int i,v;
    bool vis[MAXV];
    memset(p,-1,sizeof(p));
    memset(vis,false,sizeof(vis));

    for(i=s; i<=t; i++) dis[i]=INF;
    dis[s]=0;
    q.push(s);
    vis[s]=true;

    while(!q.empty())
    {
        v=q.front();
        q.pop();
        vis[v]=false;

        for(i=0; i<=sink; i++)
        {
            if(flow[v][i] && dis[v]+cost[v][i]



你可能感兴趣的:(网络流----最小费用最大流)