题目大意:N个客户,M个供货商,K种商品,现在知道每个客户对每种商品的需求量,也知道每个供货商每种商品的持有量,和供货商把一种商品运送到每个客户的单位花费。现在想知道如果能满足所有客户的最小花费是多少,如果不能满足输出 -1
输入详解:(图片引用源自http://blog.csdn.net/lyy289065406/article/details/6742534)。

分析:第一次做的时候想到把供应商的每种商品和客户的需求的每种商品直接连接然后求最大流,不过CE了,想着数据都是50也不大,不过仔细一想 50*50*50那就很大了,我的数组只开了500....然后想了一下觉得边是非常少的于是换成了邻接矩阵储存,然后果断给了一个TLE,下面是超时代码

#include<stdio.h>
#include<;
;

];
; i<=End; i++)
        dist[i] = oo, pre[i]=-;
    dist[start] = ;

; i=edge[i].next)
        {
            , cost=;

; i=pre[edge[i].u])
            MinFlow = min(MinFlow, edge[i].flow);
        ; i=pre[edge[i].u])
        {
            edge[i].flow -= MinFlow;
            edge[i^].flow += MinFlow;
            cost += edge[i].cost;
        }

MaxFlow += MinFlow;
    }

;
        , End = start+;

; i<=End; i++)
            Head[i] = -;
        cnt = ;

; i<N; i++)
        ; j<=K; j++)
        {);
            AddEdge(End, nk, , );
            needFlow += x;
        }

; i<M; i++)
        ; j<=K; j++)
        {);
            AddEdge(mk, start, , );
        }

; k<=K; k++)
        ; i<N; i++)
        ; j<M; j++)
        {, -x);
        }

MinCost(start, End, needFlow);
    }

;
}

然后就有些不知该怎么搞,只能向大神求助,看了别人的思路,原来这是多源多汇的费用流问题,看到这里也就明白了怎么做把K种商品拆开,对每一种商品进行最小费处理,这样图只有100*100,然后最多操作50次,很容易就求出来了结果。下面是AC代码。

#include<stdio.h>
#include<;
;

};

; i<=End; i++)
        dist[i] = oo;
    dist[start] = ;

; i<=End; i++)
        {
            , cost=, pre[MAXN]={};

;

;

; i<=N; i++)
        ; j<=K; j++)
        {; i<=M; i++)
        ; j<=K; j++)
        {; k<=K; k++)
        {, ; i<=N; i++)
            ; j<=M; j++)
            {, End = start+;
                ;; i<=M; i++)
                {; i<=N; i++)
                {)
                    ok = ;
        printf(;
}

E - Minimum Cost - POJ 2516(最小费)的更多相关文章

  1. kuangbin专题专题十一 网络流 Minimum Cost POJ - 2516

    题目链接:https://vjudge.net/problem/POJ-2516 思路:对于每种商品跑最小费用最大流,如果所有商品和人一起建图跑,O(v^2*m)数量级太大,会超时. 把店里的商品拆点 ...

  2. Minimum Cost POJ - 2516(模板题。。没啥好说的。。)

    题意: 从发货地到商家 送货 求送货花费的最小费用... 有m个发货地,,,n个商家,,每个商家所需要的物品和物品的个数都不一样,,,每个发货地有的物品和物品的个数也不一样,,, 从不同的发货地到不同 ...

  3. Minimum Cost POJ - 2516 (模板题 spfa最小费用最大流)

    题意: 人回家,一步一块钱,有x个人,y个房子,求能回家的最大人数且使之费用最小 解析: 就是....套模板,,,, 建图(⊙﹏⊙)...要仔细观察呐 对于人拆不拆都可以  都能过,,,,这里贴上拆开 ...

  4. POJ 2516 Minimum Cost (网络流,最小费用流)

    POJ 2516 Minimum Cost (网络流,最小费用流) Description Dearboy, a goods victualer, now comes to a big problem ...

  5. Poj 2516 Minimum Cost (最小花费最大流)

    题目链接: Poj  2516  Minimum Cost 题目描述: 有n个商店,m个仓储,每个商店和仓库都有k种货物.嘛!现在n个商店要开始向m个仓库发出订单了,订单信息为当前商店对每种货物的需求 ...

  6. POJ 2516 Minimum Cost (最小费用最大流)

    POJ 2516 Minimum Cost 链接:http://poj.org/problem?id=2516 题意:有M个仓库.N个商人.K种物品.先输入N,M.K.然后输入N行K个数,每一行代表一 ...

  7. POJ - 2516 Minimum Cost 每次要跑K次费用流

    传送门:poj.org/problem?id=2516 题意: 有m个仓库,n个买家,k个商品,每个仓库运送不同商品到不同买家的路费是不同的.问为了满足不同买家的订单的最小的花费. 思路: 设立一个源 ...

  8. POJ 2516 Minimum Cost (费用流)

    题面 Dearboy, a goods victualer, now comes to a big problem, and he needs your help. In his sale area ...

  9. POJ 2516 Minimum Cost 最小费用流 难度:1

    Minimum Cost Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 13511   Accepted: 4628 Des ...

随机推荐

  1. .net之页面生面周期

    # 事件或方法 功能 描述 1 Init 事件 页面初始化 页面生存周期中的第一个阶段是初始化.当 Init 事件发生时,在.aspx 源文件中静态声明的所有控件都已实例化并取其默认值.应该注意的是, ...

  2. 【分享】w32service table XPsp2

    Ord   Address   fnAddr   Symbols-------------------------------- [  0] BF999280: BF93569A (win32k!Nt ...

  3. 二分图最大匹配(匈牙利算法Dfs模板)

    #include<iostream> #include<cstdio> #include<cstring> #define maxn 2020 using name ...

  4. poj 2679 Adventurous Driving(SPFA 负环)

    /* - - 这题做了一天.....粗心害死人啊 题目描述恶心 数据更恶心... 先处理一下能走的边 能走的点(到这建边从终点跑一下.) 然后就是SPFA了 注意负环的判断 */ #include&l ...

  5. ASP.NET面试

    1.net中读写数据库需要用到那些类?他们的作用都是什么?答:DataSet:数据存储器.DataCommand:执行语句命令.DataAdapter:数据的集合,用语填充.2.介绍一下什么是Code ...

  6. EasyUI-datagrid获取编辑行的数据

    可以在页面对datagrid的数据直接进行修改,然后提交到数据库,但是要求在提交前获取datagrid的所有行的数据.API提供了getData方法 最后这样写才搞定 var    arr=$(‘#d ...

  7. js面向对象--类式继承

    //待研究//类式继承 //js中模拟类式继承的3个函数 //简单的辅助函数,让你可以将新函数绑定到对象的 prototype 上 Function.prototype.method = functi ...

  8. rest-简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

  9. JavaScript--模拟网络爬虫

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. 重拾C++ 基础知识总结(一)

    1.使用gcc编译c++文件报错 proc1.cc:(.text+0x14): undefined reference to `std::cout' C++程序使用gcc命令只能编译,不能链接库文件 ...