线性规划与网络流24题 运输问题(最裸的费用流了)
存费用流模板
用sfpa算出最小费用和路径,沿这条路径增广
1 const 2 inf=maxlongint; 3 var 4 n,m:longint; 5 map,a,w:array[0..120,0..120]of longint; 6 7 procedure init; 8 var 9 i,j:longint; 10 begin 11 read(m,n); 12 for i:=1 to m do 13 read(map[0,i]); 14 for i:=1 to n do 15 read(map[m+i,n+m+1]); 16 for i:=1 to m do 17 for j:=1 to n do 18 begin 19 read(w[i,m+j]); 20 w[m+j,i]:=-w[i,m+j]; 21 map[i,m+j]:=inf; 22 end; 23 end; 24 25 var 26 flag,d,dis,pre:array[0..120]of longint; 27 time:longint; 28 29 function spfa:boolean; 30 var 31 i,head,tail,num:longint; 32 begin 33 head:=1; 34 tail:=1; 35 num:=1; 36 inc(time); 37 for i:=1 to n+m+1 do 38 dis[i]:=inf; 39 dis[0]:=0; 40 d[1]:=0; 41 flag[0]:=time; 42 while num>0 do 43 begin 44 for i:=1 to n+m+1 do 45 if (a[d[head],i]>0)and(dis[d[head]]+w[d[head],i]<dis[i]) then 46 begin 47 dis[i]:=dis[d[head]]+w[d[head],i]; 48 pre[i]:=d[head]; 49 if flag[i]<>time then 50 begin 51 flag[i]:=time; 52 inc(num); 53 tail:=tail mod(n+m+1)+1; 54 d[tail]:=i; 55 end; 56 end; 57 flag[d[head]]:=time-1; 58 head:=head mod(n+m+1)+1; 59 dec(num); 60 end; 61 if dis[n+m+1]=inf then exit(false); 62 exit(true); 63 end; 64 65 procedure work; 66 var 67 i,j,aug,ans:longint; 68 begin 69 for i:=0 to n+m+1 do 70 for j:=0 to n+m+1 do 71 a[i,j]:=map[i,j]; 72 ans:=0; 73 while spfa do 74 begin 75 aug:=inf; 76 i:=n+m+1; 77 while i<>0 do 78 begin 79 j:=pre[i]; 80 if a[j,i]<aug then aug:=a[j,i]; 81 i:=j; 82 end; 83 inc(ans,dis[n+m+1]*aug); 84 i:=n+m+1; 85 while i<>0 do 86 begin 87 j:=pre[i]; 88 inc(a[i,j],aug); 89 dec(a[j,i],aug); 90 i:=j; 91 end; 92 end; 93 writeln(ans); 94 ans:=0; 95 for i:=1 to m do 96 for j:=1 to n do 97 begin 98 w[i,j+m]:=-w[i,j+m]; 99 w[j+m,i]:=-w[j+m,i]; 100 end; 101 for i:=0 to n+m+1 do 102 for j:=0 to n+m+1 do 103 a[i,j]:=map[i,j]; 104 ans:=0; 105 while spfa do 106 begin 107 aug:=inf; 108 i:=n+m+1; 109 while i<>0 do 110 begin 111 j:=pre[i]; 112 if a[j,i]<aug then aug:=a[j,i]; 113 i:=j; 114 end; 115 inc(ans,dis[n+m+1]*aug); 116 i:=n+m+1; 117 while i<>0 do 118 begin 119 j:=pre[i]; 120 inc(a[i,j],aug); 121 dec(a[j,i],aug); 122 i:=j; 123 end; 124 end; 125 writeln(-ans); 126 end; 127 128 begin 129 assign(input,'trans.in'); 130 reset(input); 131 assign(output,'trans.out'); 132 rewrite(output); 133 init; 134 work; 135 close(input); 136 close(output); 137 end.
View Code
转载于:https://www.cnblogs.com/Randolph87/p/3602203.html
线性规划与网络流24题 运输问题(最裸的费用流了)相关推荐
- 解题报告:线性规划与网络流24题
目录 A.飞行员配对方案问题 (二分图最大匹配)(最大流)[提高+/省选- ] B.太空飞行计划问题(最大权闭合图转最小割.最小割方案输出)[省选/NOI- ] C.最小路径覆盖问题(有向无环图最小路 ...
- 739. [网络流24题] 运输问题
739. [网络流24题] 运输问题 ★★ 输入文件:tran.in 输出文件:tran.out 简单对比 时间限制:1 s 内存限制:128 MB «问题描述: «编程任务: 对于给 ...
- 囧——线性规划与网络流24题之网络流入门经典
搞了好久终于搞定线性规划与网络流24题,不过机器人路径至今无解,第22题感觉是数据错了~~~ 我的代码,数据和题目题解是BYVoid那弄到的:http://download.csdn.net/sour ...
- [线性规划与网络流24题] 网络流常见模型
最近两个月在做<线性规划与网络流24题>这套题,加深了对网络流的理解. 涵盖到的模型有:二分图匹配.二分图的最大独立集.最大权闭合图.有向无环图的最小路径覆盖.最多不相交路径.最大权不相交 ...
- 【网络流24题】圆桌聚餐(最大流)
[网络流24题]圆桌聚餐(最大流) 题面 Cogs 题解 这道题很简单 首先每个单位的人数限制 直接从源点向单位连边,容量为人数 同样的, 每个桌子向汇点连边,容量为可以坐的人数 因为每个桌子只能够做 ...
- 【线性规划与网络流24题】汽车加油行驶问题 分层图
汽车加油行驶问题 Time Limit: 1 Sec Memory Limit: 128 MB Description 给定一个 N*N的方形网格,设其左上角为起点◎,坐标为( 1,1),X轴向右为 ...
- 【线性规划与网络流24题】孤岛营救问题 分层图
孤岛营救问题 Time Limit: 1 Sec Memory Limit: 128 MB Description 1944年,特种兵麦克接到国防部的命令.要求马上赶赴太平洋上的一个孤岛,营救被敌军 ...
- 餐巾计划问题 线性规划与网络流24题之10 费用流
相关知识:最小费用(最大)流 问题描述: 一个餐厅在相继的N 天里, 每天需用的餐巾数不尽相同. 假设第i天需要ri块餐巾(i=1, 2,-,N).餐厅可以购买新的餐巾,每块餐巾的费用为p分:或者把旧 ...
- 【线性规划和网络流24题】
(1)飞行员配对方案问题:二分图最大匹配. 思路:略. View Code 1 #include<cstdio> 2 #include<cstring> 3 #define M ...
最新文章
- debian10 简单的DNS服务器搭建
- 「x is All You Need」,当学术论文开始标题党……
- 【OpenCV 4开发详解】颜色模型与转换
- Python强大的格式化format
- oracle迁移到mysql工具_oracle数据库想迁移到mysql上 有什么方法或者工具吗
- Python学习14 模块和包
- 计算机专业排版有哪些,计算机专业英语词汇(完美排版_大容量打印版).pdf
- linux 升级 git版本,CentOS下升级Git1.7.1升级到Git2.2.1
- [f]class获取元素函数
- 中国石油大学《机械基础(设计与制造)》第二阶段在线作业
- spring-ant-处理zip
- java 视频分辨率_javaCV开发详解之15:视频帧像素格式转换
- python登录接口并发测试_使用python脚本作接口并发测试
- linux桌面lxde 安装_在Ubuntu上,如何安装轻量的LXDE桌面
- SAP总账科目增强写入客商(BAPI导入)
- “散场“却不”离场“的2020进博会品牌第一自行车辐轮王
- 排序算法7——归并排序
- SEO并不难学,我是如何学习好SEO的
- 汽车汽配行业供应链协同管理平台一体化管理,SCM供应链提升企业竞争力
- 电池pack结构_电池PACK是什么?锂电池包PACK结构设计需要考虑哪些因素?
热门文章
- 高并发下的接口幂等性解决方案!
- 异地多活场景下的数据同步之道 | 珍藏版
- 如何向5岁小孩解释什么是支持向量机(SVM)?
- 微服务为什么一定要用docker
- vscode 一些基本知识
- 框架:SpringMVC中Interceptor拦截器的两种实现
- 处理被中断的系统调用
- 【Scratch】青少年蓝桥杯_每日一题_1.1_美国队长盾牌
- html表格选择一行,vue + element table表格如何默认选中第一行
- python flask框架发布问答平台注册页面_Python|Flask框架实现QQ账号登录