poj 2516Minimum Cost】的更多相关文章

http://poj.org/problem?id=2516 #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #define maxn 110 using namespace std; int need[maxn][maxn]; int sup[maxn][maxn]; int cost[maxn][maxn][maxn]; int cap[maxn][maxn];…
[题意]: 有N个人,M个仓库,每个人需要物品,个数都等于共同的K,仓库中有对应的K件物品的数量,随后给K个N*M矩阵(小写k, n, m表示K,N,M对应的子集),表明m个仓库到第n个人的位置运送k物品的花费,求 满足所有人的订单要求所需要的花费,如果不能满足所有人则输出-1 [思路]: 我的思路是建立源点sp,汇点tp, 把仓库和人所在的点都进行拆分,对每个仓库拆分成K个点,可以想象成一个大仓库由K个小仓库组成,每个小仓库只发放第k种物品,每个人也分成K个点,每个点接受一种k物品,sp与仓库…
POJ 2516 Minimum Cost (网络流,最小费用流) Description Dearboy, a goods victualer, now comes to a big problem, and he needs your help. In his sale area there are N shopkeepers (marked from 1 to N) which stocks goods from him.Dearboy has M supply places (marke…
题目链接:http://poj.org/problem?id=2516 题目大意: 第一行是N,M,K 接下来N行:第i行有K个数字表示第i个卖场对K种商品的需求情况 接下来M行:第j行有K个数字表示第j个库房对K种商品的存货情况 接下来K个N*M的矩阵: 每个矩阵(i,j)表示第k种商品从第j个库房运到第i个卖场的运费(单价) 求满足所有需求的最小花费,如果不能全部满足输出-1. 解题思路: 拆点,对于第k种商品有: 把每个卖场的需求按件数拆成各个小点(比如需要x件就看做x个点) 把每个库房的…
题目链接: Poj  2516  Minimum Cost 题目描述: 有n个商店,m个仓储,每个商店和仓库都有k种货物.嘛!现在n个商店要开始向m个仓库发出订单了,订单信息为当前商店对每种货物的需求量.不同的商店从不同的仓库购买不同货物花费不同,问是不是能满足所有商店的要求,如果能商店花费总和最小为多少? 解题思路: 简单的费用流,要跑K次最小花费最大流,每次只对一种货物建图跑费用流.每次建图以0为源点, [1,m]为仓库, [m+1, n+m]为商店, n+m+1为汇点.0与[1,m]连边,…
POJ 2516 Minimum Cost 链接:http://poj.org/problem?id=2516 题意:有M个仓库.N个商人.K种物品.先输入N,M.K.然后输入N行K个数,每一行代表一个商人要购买的物品,当中K个数分别表示要购买的每件商品数. 然后是M行K个数,每行表示仓库里的情况,当中K个数分别每种物品的库存量. 接下来是K个矩阵,每一个矩阵为N*M,分别表示第K种物品从M个仓库运到第N个商人的花费.问是否能合理安排,使得花费最少.假设不行就输出-1. 思路: 一開始的时候.居…
传送门:poj.org/problem?id=2516 题意: 有m个仓库,n个买家,k个商品,每个仓库运送不同商品到不同买家的路费是不同的.问为了满足不同买家的订单的最小的花费. 思路: 设立一个源点S和汇点T,从源点S到每个仓库(1-m)连上容量为商品A的库存.费用为0的边,每个仓库再向每个不同的买家连上容量inf,费用为路费的边.每个顾客向汇点连一条容量为自己对商品A的需求个数.费用为0的边.跑一边费用流即可.这只有运送一个商品的费用,对,那我们就对不同商品建不同的图,一共跑K边,累计答案…
https://vjudge.net/problem/11079/origin 题意:有N个商店和M个供应商和K种物品,每个商店每种物品有一个需求数,每个供应商每种物品有一个供应量,供应商到商店之间的运输需要花费,如果供不应求输出-1,否则输出最小花费. 思路:比较明显的最小费用流.想法大概都是源点和供应商连一条容量为供应量,花费为0的边,商店和汇点之间连一条容量为需求量,花费为0的边,供应商和商店之间连一条容量为INF,花费为题意给出的花费的边.建图的话一开始是直接对于每一个商店每一种物品和每…
题意略: 思路: 这题比较坑的地方是把每种货物单独建图分开算就ok了. #include<stdio.h> #include<queue> #define MAXN 500 #define MAXM 10002*4 #define INF 10000000 using namespace std; //起点编号必须最小,终点编号必须最大 bool vis[MAXN]; //spfa中记录是否在队列里边 ][]; int max_flow; struct point{ int x,y…
题目: 给出n*kk的矩阵,格子a[i][k]表示第i个客户需要第k种货物a[i][k]单位. 给出m*kk的矩阵,格子b[j][k]表示第j个供应商可以提供第k种货物b[j][k]单位. 再给出k个n*m的矩阵,格子c[k][i][j]表示第k种货物由j供应商提供给客户i的话,每单位运费为c[k][i][j]. 问最小费用. 分析: 刚开始时,虽然考虑到每种货物其实是不相关的,但是想到在跑费用流时应该没多大影响,所以直接建图,跑最小费用流,TLE了... 后来对于每种货物单独来考虑,即建图之后…