题目大意:

给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用。


思路:

既然是模板题,那么数据肯定很水。
我 E K + S P F A EK+SPFA EK+SPFA都过了。
费用流其实就是最大流改一个 S P F A SPFA SPFA而已,很简单。


代码:

#include <cstdio>
#include <iostream>
#include <queue>
#include <cstring>
#define Inf 2147483647
using namespace std;int n,m,s,t,x,y,c,w,k,minn,ans,sum,dis[10001],head[250011];
bool vis[10001];struct edge  //邻接表
{int next,to,c,w;
}e[250011];struct pre  //记录路径
{int fa,e;
}p[250011];void add(int from,int to,int c,int w)  //建模
{k++;e[k].to=to;e[k].c=c;e[k].w=w;e[k].next=head[from];head[from]=k;
}bool spfa()  //最短路不解释
{memset(dis,0x3f,sizeof(dis));memset(vis,0,sizeof(vis));memset(p,0,sizeof(p));queue<int> q;q.push(s);vis[s]=1;dis[s]=0;while (q.size()){int u=q.front();q.pop();vis[u]=0;for (int i=head[u];i;i=e[i].next){int v=e[i].to;int w=e[i].w;if (e[i].c&&dis[v]>dis[u]+w){dis[v]=dis[u]+w;p[v].fa=u;p[v].e=i;if (!vis[v]){vis[v]=1;q.push(v);}}}}return dis[t]!=0x3f3f3f3f;
}int main()
{k=1;scanf("%d%d%d%d",&n,&m,&s,&t);for (int i=1;i<=m;i++){scanf("%d%d%d%d",&x,&y,&c,&w);add(x,y,c,w);add(y,x,0,-w);  //反向变的费用为正向边的相反数}while (spfa()){minn=Inf;for (int i=t;i!=s;i=p[i].fa)minn=min(minn,e[p[i].e].c);  //求最小流量for (int i=t;i!=s;i=p[i].fa){e[p[i].e].c-=minn;  //正向边e[p[i].e^1].c+=minn;  //反向边}ans+=minn;  //最大流sum=sum+minn*dis[t];  //最小花费}printf("%d %d\n",ans,sum);return 0;
}

【模板】最小费用最大流【费用流】相关推荐

  1. 经典网络流题目模板(P3376 + P2756 + P3381 : 最大流 + 二分图匹配 + 最小费用最大流)...

    题目来源 P3376 [模板]网络最大流 P2756 飞行员配对方案问题 P3381 [模板]最小费用最大流 最大流 最大流问题是网络流的经典类型之一,用处广泛,个人认为网络流问题最具特点的操作就是建 ...

  2. 一篇网络流 基本模型超全总结(最大流 费用流 多源汇最大流 上下界可行流) 思路+代码模板

    文章目录 一.网络流与最大流 二.网络流三个基本性质 三.重要定义定理 四.最大流算法 <Ⅰ> Edmonds-Karp算法(EK算法) 1.EK算法 2.算法思想: 3.代码模板 4.模 ...

  3. BZOJ3130: [Sdoi2013]费用流[最大流 实数二分]

    3130: [Sdoi2013]费用流 Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special Judge Submit: 960  Solved:  ...

  4. [BZOJ1834][ZJOI2010]network 网络扩容(最大流+费用流)

    题目描述 传送门 题解 Q1 傻逼最大流 Q2 求出最大流之后将图暴力重构,原图中的边费用为0,流量为初始流量,添加一些和原图边同始同终的边,费用为扩容费用,流量为INF,再添加一个超级源连向原先的源 ...

  5. day27-API-java流的三大分类,常用的流(文件流,对象流, 缓冲流, 转换流, PW)

    文章目录 一. java流的三大类 1. 输出流和输入流 2. 字节流和字符流 3. 节点流和处理流 二. 字节流 1. 文件流 FIS和FOS 1.1 文件输出流:FileOutputStream ...

  6. OpenFlow协议初探——OpenFLow中的流和流表

    OpenFlow协议初探--OpenFLow中的流和流表 OpenFlow交换机转发面由两部分组成:端口和流表.一个交换机可以有很多种端口,也可以有很多级流表.下图是思科提供的OpenFlow交换机总 ...

  7. 复合文档格式(五) - 短流、短流容器流和短扇区分配表

    一.概述 上一篇学习了主扇区分配表和扇区分配表:http://blog.csdn.net/lipinganq/article/details/76785471 在复合文档头中的第56 - 59的4个字 ...

  8. HM2805B高效率恒流限流 WLED 驱动IC

    产品简介 泛海微HM2805B是一种输入电压范围宽(0.8~5.5V),可调恒定电流和限定电流两种模式来 驱动白光 LED 而设计的升压型 DC/DC 变换器.采用变频模式,逐周期限流,使输入输 出电 ...

  9. TS流概述(ES流-基本流,PES流-打包基本码流,PS流-节目流,TS流-传输流)

    一.TS流概述 ES流(Elementary Stream,基本流):数字电视各组成部分编码后所形成的直接表示基本元素内容的流,包含视频.音频或数据的连续码流. PES流(Paketized Elem ...

  10. Java基础知识强化之IO流笔记41:字符流缓冲流之复制文本文件案例02(使用 [ newLine() / readLine() ] )(重要)...

    1. 使用字符流缓冲流的特殊功能 [ newLine() / readLine() ] 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中  数据源: a.txt -- 读取数据 ...

最新文章

  1. Facebook API使用经验分享
  2. 除了CRUD也要注意IO
  3. WordPress WP Photo Album Plus插件‘wppa-tag’跨站脚本漏洞
  4. uva live 2326 - Moving Tables
  5. 在vue项目中配置axios
  6. android selector 开始自定义样式
  7. 什么是切片器?如何插入切片器?
  8. 文献笔记|Lau, 2021, Nature human behaviour
  9. 在github上托管属于自己的网页
  10. 散射回波仿真Matlab,基于散射中心模型的ISAR回波仿真方法
  11. English——slang about body
  12. 创建esp分区和msr分区是做什么用得
  13. mysql oracle创建视图索引吗_Oracle视图,索引,序列
  14. 港科夜闻|香港科大冯雁教授专访:人工智能的发展不能脱离人本
  15. C++学习(三九一)vs2017 Hostx64 Hostx86 x64 x86
  16. 5W1H聊开源之Who和How——谁、如何参与开源?
  17. 水木资本网 证券娱乐圈诚邀天下英才 打造千万级财经视频主播
  18. 【技术】西门子软PLC与组态软件如何通讯?
  19. 实验记录 | 6/2 somatic.pl
  20. html制作简易时钟

热门文章

  1. Sql server 去除字段回车换行符
  2. 数据结构:设线性表中每个元素有两个数据项k1和k2,现对线性表按一下规则进行排序:先看数据项k1,k1值小的元素在前,大的在后;在k1值相同的情况下,再看k2,k2值小的在前,大的在后。满足这种要求的
  3. Mysql出现问题:ERROR 2058: Plugin caching_sha2_passward could not be loaded解决方案
  4. octagam® 10%治疗皮肌炎患者的ProDERM研究达到主要终点的阳性结果将在ACR 2020年会上呈报
  5. IDEA插件系列(77):Spec Math symbols插件——数学符号
  6. 外部表不是预期的格式错误
  7. h5+css3基础面试题
  8. Linux下C程序调用库函数实现重启
  9. 【系统架构】-如何评估软件架构
  10. Vue:el-dialog可拖拽