POJ2516 Minimum Cost
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
const int maxn=;
const int inf=1e9;
int cap[maxn][maxn];
int flow[maxn][maxn];
int cost[maxn][maxn];
int n;
int f;//最大流
int c;//最小费用
int st,ed;
bool visit[maxn];
int pre[maxn],dist[maxn];
bool spfa () {
queue<int> q;
for (int u=;u<=n;u++) {
if (u==st) {
q.push(u);
dist[u]=;
visit[u]=true;
}
else {
dist[u]=inf;
visit[u]=false;
}
}
while (!q.empty()) {
int u=q.front();
visit[u]=false;
q.pop();
for (int v=;v<=n;v++) {
if (cap[u][v]>flow[u][v]&&dist[v]>dist[u]+cost[u][v]) {
dist[v]=dist[u]+cost[u][v];
pre[v]=u;
if (!visit[v]) {
visit[v]=true;
q.push(v);
}
}
}
}
if (dist[ed]>=inf) return false;
return true;
}
void minCostMaxflow () {
memset (flow,,sizeof(flow));
c=f=;
while (spfa()) {
int Min=inf;
for (int u=ed;u!=st;u=pre[u])
Min=min(Min,cap[pre[u]][u]-flow[pre[u]][u]);
for (int u=ed;u!=st;u=pre[u]) {
flow[pre[u]][u]+=Min;
flow[u][pre[u]]-=Min;
}
c+=dist[ed]*Min;
f+=Min;
}
}
int order[maxn][maxn];
int supply[maxn][maxn];
int tolorder[maxn];
int main() {
int N,M;
int K;
while(scanf("%d%d%d",&N,&M,&K)!=EOF) {
if(N==&&M==&&K==)break;
st=;
n=N+M+;
ed=n;
memset(cap,,sizeof(cap));
memset(cost,,sizeof(cost));
for(int i=;i<N;i++)
for(int j=;j<K;j++)
scanf("%d",&order[i][j]);
for(int i=;i<M;i++)
for(int j=;j<K;j++)
scanf("%d",&supply[i][j]);
for(int i=;i<K;i++) {
tolorder[i]=;
for(int j=;j<N;j++)
tolorder[i]+=order[j][i];
}
for(int i=;i<=M;i++)
for(int j=M+;j<=N+M;j++)
cap[i][j]=inf;
bool flag=true;
int ans=;
for(int i=;i<K;i++) {
for(int j=M+;j<=M+N;j++)
for(int k=;k<=M;k++) {
scanf("%d",&cost[k][j]);
cost[j][k]=-cost[k][j];
}
if(!flag)continue;
for(int j=;j<=M;j++)
cap[st][j]=supply[j-][i];
for(int j=;j<=N;j++)
cap[j+M][ed]=order[j-][i];
minCostMaxflow();
if(f<tolorder[i])flag=false;
else ans+=c;
}
if(!flag)printf("-1\n");
else printf("%d\n",ans);
}
return ;
}
POJ2516 Minimum Cost的更多相关文章
- POJ2516 Minimum Cost —— 最小费用最大流
题目链接:https://vjudge.net/problem/POJ-2516 Minimum Cost Time Limit: 4000MS Memory Limit: 65536K Tota ...
- POJ2516:Minimum Cost(最小费用最大流)
Minimum Cost Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 19088 Accepted: 6740 题目链 ...
- poj-2516.minimum cost(k次费用流)
Minimum Cost Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 19883 Accepted: 7055 Des ...
- POJ2516 Minimum Cost(最小费用最大流)
一开始我把每个店主都拆成k个点,然后建图..然后TLE.. 看题解= =哦,愚钝了,k个商品是独立的,可以分别跑k次最小费用最大流,结果就是k次总和.. #include<cstdio> ...
- POJ2516 Minimum Cost【最小费用最大流】
题意: 有N个客户,M个仓库,和K种货物.已知每个客户需要每种货物的数量,每个仓库存储每种货物的数量,每个仓库运输各种货物去各个客户的单位费用.判断所有的仓库能否满足所有客户的需求,如果可以,求出最少 ...
- 【POJ2516】Minimum Cost
[POJ2516]Minimum Cost 题意:有N个收购商.M个供应商.K种物品.对于每种物品,每个供应商的供应量和每个收购商的需求量已知.每个供应商与每个收购商之间运送该物品的运费已知.求满足收 ...
- POJ 2516 Minimum Cost (网络流,最小费用流)
POJ 2516 Minimum Cost (网络流,最小费用流) Description Dearboy, a goods victualer, now comes to a big problem ...
- Minimum Cost(最小费用最大流)
Description Dearboy, a goods victualer, now comes to a big problem, and he needs your help. In his s ...
- POJ 2516 Minimum Cost (费用流)
题面 Dearboy, a goods victualer, now comes to a big problem, and he needs your help. In his sale area ...
随机推荐
- 这是一篇通过open live writer发布的博文
这两天零零总总的尝试了两三款写博客的软件,总感觉不怎么上手,最后还是使用博客园官方推荐的工具写博吧,简单方便,目前的功能基本都有,尤其是粘贴图片特别方便,回想之前的几篇博文,真是一种煎熬哈哈(对于我这 ...
- AcWing 898. 数字三角形
//从上往下 #include <iostream> #include <algorithm> using namespace std; , INF = 1e9; int n; ...
- dfs题型二(迷宫问题)
取自:<王道论坛计算机考研机试指南>6.5节 例 6.7 Temple of the bone(九度 OJ 1461)时间限制:1 秒 内存限制:32 兆 特殊判题:否题目描述:The d ...
- 素问 - IC跨期套利
摘自<小韭的学习圈> Q 我现在是长持ic.我观察到IC1907和IC1909的贴水差会有波动.有时候,IC 1907涨的多,有时候IC1909涨的多.而在某一天这个趋势相对是稳定的. 那 ...
- Django_模型继承
解决办法
- windows 安装 cordova
windows 安装 cordova 参考资料:https://www.cnblogs.com/bpdxqx/p/6061719.html 1.安装nodejs(自动包含npm) 2.在命令行中通过n ...
- RTMP 协议规范(中文版)
本文是为截至发稿时止最新 Adobe 官方公布的 RTMP 规范.本文包含 RTMP 规范的全部内容.是第一个比较全面的 RTMP 规范的中译本.由于成文时间仓促,加上作者知识面所限,翻译错误之处在所 ...
- 微信小程序 购物车流程
购物车流程 一.需求分析 a:全选,单选,根据选中的计算数目和总价 b:单个商品加减 c:删除一个商品 wxml 布局 <view> <view v-if="flag&qu ...
- 网站调用qq第三方登录
1. 准备工作 (1) 接入QQ登录前,网站需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权. ① 注册QQ互联开发者账号 网址 https:/ ...
- itest(爱测试) 4.3.1 发布,开源BUG 跟踪管理 & 敏捷测试管理软件
4.3.0 发布后有三个用户强烈要求的更新,所以一周后4.3.1出炉,有点版本帝的味道哈,用户的反馈是我们持续升级的动力...... itest 简介:查看简介 test 开源敏捷测试管理,testO ...