算法模板(8):网络流(3):费用流

news/2024/11/28 8:45:58/

算法模板(8):网络流(3):费用流

费用流之算法模板

费用流:所有最大可行流中,费用的最小值/最大值

注意费用指的是这条边的单位费用,即为 边的流量 乘 边的费用.

2174. 费用流 - AcWing题库

  • 题意:给定一个包含 n n n 个点 m m m 条边的有向图,并给定每条边的容量和费用,边的容量非负。图中可能存在重边和自环,保证费用不会存在负环。求从 S S S T T T 的最大流,以及在流量最大时的最小费用。
  • 每次沿着最短路增广,得到的费用是最小的。然后就是把 E K EK EK 算法中的 b f s bfs bfs 换成最短路即可,最短路中间加上对流量的更新即可。
#include<bits/stdc++.h>
using namespace std;
const int N = 5010, M = 100010, INF = 1e8;
int h[N], e[M], ne[M], f[M], w[M], idx;void add(int a, int b, int c, int d)
{e[idx] = b, ne[idx] = h[a], f[idx] = c, w[idx] = d, h[a] = idx++;e[idx] = a, ne[idx] = h[b], f[idx] = 0, w[idx] = -d, h[b] = idx++;
}
int n, m, S, T;
int incf[N], d[N], pre[N];
bool st[N];bool spfa()
{memset(d, 0x3f, sizeof d);memset(incf, 0, sizeof incf);queue<int> que;d[S] = 0, incf[S] = INF;que.push(S);while(que.size()){int u = que.front(); que.pop();st[u] = false;for(int i = h[u]; i != -1; i = ne[i]){int v = e[i];if(f[i] && d[v] > d[u] + w[i]){d[v] = d[u] + w[i];pre[v] = i;incf[v] = min(f[i], incf[u]);if(!st[v]){que.push(v);st[v] = true;}}}}return incf[T] > 0;
}void EK(int& flow, int& res)
{flow = 0, res = 0;while(spfa()){int t = incf[T];flow += t, res += t * d[T];for(int i = T; i != S; i = e[pre[i] ^ 1]){f[pre[i]] -= t, f[pre[i] ^ 1] += t;}}
}int main()
{memset(h, -1, sizeof h);scanf("%d%d%d%d", &n, &m, &S, &T);for(int i = 1; i <= m; i++){int a, b, c, d;scanf("%d%d%d%d", &a, &b, &c, &d);add(a, b, c, d);}int flow, res;EK(flow, res);printf("%d %d\n", flow, res);return 0;
}s

费用流之直接应用

费用流之二分图最优匹配

费用流之最大权不相交路径

费用流之网格图模型

费用流之拆点

费用流之上下界可行流


http://www.ppmy.cn/news/382945.html

相关文章

CapStone CS5268|设计TYPEC to hdmi+VGA+pd3.0+usb3.1拓展

CapstoneCS5268AN是一款Type-C/DP1.4至HDMI2.0b和VGA转换器&#xff0c;设计用于将USB Type-C源或DP1.4源连接至HDMI2.0b接收器。CS5268AN集成了DP1.4兼容接收机、兼容HDMI2.0b的发射机和VGA输出接口。此外&#xff0c;还包括两个CC控制器&#xff0c;用于CC通信&#xff0c;以…

沁恒USB转串口主要替换FT232/230系列

①驱动类型&#xff1a;CH9101支持使用系统自带CDC串口驱动或者官方提供的VCP厂商驱动&#xff0c;默认建议使用VCP驱动&#xff0c;其功能更完整且性能更好。 ②峰值最高波特率&#xff1a;芯片支持的最高串口波特率&#xff0c;USB全速物理层为12Mbps半双工&#xff0c;考虑…

淘宝cp210X提示“VeriFone USB Modem”无法匹配驱动

淘宝cp210X提示“VeriFone USB Modem”无法匹配驱动 前段时间&#xff0c;在淘宝上买了cp210X usb转串口芯片&#xff0c;安装-调试板驱动CP210x-Windows-Drivers&#xff08;0积分下载地址&#xff09;后&#xff0c;插入电脑后设备管理&#xff0c;显示"VeriFone USB Mo…

win10 64bits信捷触摸屏download usb口驱动程序的安装

【问题描述】 win10 64bits&#xff0c;信捷触摸屏开发软件&#xff0c;下载的时候需要安装驱动程序。 用的以前的win7 64bits的驱动程序&#xff0c;直接双击安装&#xff0c;显示无法操作注册表&#xff0c;需要管理员模式。 使用管理员权限安装&#xff0c;仍然显示无法操…

iFix软件介绍

iFix软件介绍 iFIX 概况 iFIX是全球最领先的HMI/SCADA自动化监控组态软件&#xff0c;已有超过300&#xff0c;000套以上的软件在全球运行。世界上许多最成功的制造商都依靠 GE Fanuc的iFIX软件来全面监控和分布管理全厂范围的生产数据。在包括冶金、电力、石油化工、制药、…

乐得瑞专门为笔记本/平板Type-C接口,HOST端解决方案

乐得瑞专门为笔记本/平板Type-C接口&#xff0c;HOST端解决方案 USB-C接口的作用 第一&#xff1a;USB-C端口具有体积小&#xff0c;可正反插等特性&#xff0c;被越来越多的设备采用。USB-C也可以写作USB Type-C。USB-C端口兼容之前旧版的USB -A口的所有功能&#xff0c;可以…

硬件设计——关于Type-C 口的讲解和设计

目录 摘要&#xff1a; Type-C&#xff1a; 实际图&#xff1a; 原理和优点&#xff1a; 电路设计&#xff1a; 摘要&#xff1a; 对于目前的大众来说&#xff0c;Type-C无疑是最方便的&#xff0c;最易找到的USB线&#xff0c;无论是用来传输数据或者用来充电而言。所以&…

SIT1042 5V 供电,IO 口兼容 3.3V,±70V 总线耐压,(CAN FD)待机模式总线收发器

SIT1042 是一款应用于 CAN 协议控制器和物理总线之间的接口芯片&#xff0c;可应用于卡车、公交、 小汽车、工业控制等领域&#xff0c;支持 5Mbps 灵活数据速率&#xff08;CAN FD&#xff09;&#xff0c;具有在总线与 CAN 协议控 制器之间进行差分信号传输的能力。 特点 …