当前位置: 首页 > news >正文

费用流

费用流

给定一个带费用的网络,规定 \((u,v)\) 间的费用为 \(f(u,v) \times w(u,v)\) ,求解该网络中总花费最小的最大流称之为最小费用最大流。总时间复杂度为 \(\mathcal O(NMf)\) ,其中 \(f\) 代表最大流。

struct MinCostFlow {using LL = long long;using PII = pair<LL, int>;const LL INF = numeric_limits<LL>::max();struct Edge {int v, c, f;Edge(int v, int c, int f) : v(v), c(c), f(f) {}};const int n;vector<Edge> e;vector<vector<int>> g;vector<LL> h, dis;vector<int> pre;MinCostFlow(int n) : n(n), g(n) {}void add(int u, int v, int c, int f) { // c 流量, f 费用// if (f < 0) {//     g[u].push_back(e.size());//     e.emplace_back(v, 0, f);//     g[v].push_back(e.size());//     e.emplace_back(u, c, -f);// } else {g[u].push_back(e.size());e.emplace_back(v, c, f);g[v].push_back(e.size());e.emplace_back(u, 0, -f);// }}bool dijkstra(int s, int t) {dis.assign(n, INF);pre.assign(n, -1);priority_queue<PII, vector<PII>, greater<PII>> que;dis[s] = 0;que.emplace(0, s);while (!que.empty()) {auto [d, u] = que.top();que.pop();if (dis[u] < d) continue;for (int i : g[u]) {auto [v, c, f] = e[i];if (c > 0 && dis[v] > d + h[u] - h[v] + f) {dis[v] = d + h[u] - h[v] + f;pre[v] = i;que.emplace(dis[v], v);}}}return dis[t] != INF;}pair<int, LL> flow(int s, int t) {int flow = 0;LL cost = 0;h.assign(n, 0);while (dijkstra(s, t)) {for (int i = 0; i < n; ++i) h[i] += dis[i];int aug = numeric_limits<int>::max();for (int i = t; i != s; i = e[pre[i] ^ 1].v) aug = min(aug, e[pre[i]].c);for (int i = t; i != s; i = e[pre[i] ^ 1].v) {e[pre[i]].c -= aug;e[pre[i] ^ 1].c += aug;}flow += aug;cost += LL(aug) * h[t];}return {flow, cost};}
};  
http://www.jsqmd.com/news/21180/

相关文章:

  • 图论常见结论及例题
  • 查询GPIO状态值(步骤)
  • 最长路(topsort+DP算法)
  • 最短路径树(SPT问题)
  • 欧拉路径/欧拉回路 Hierholzers
  • 无源汇点的最小割问题 Stoer–Wagner
  • 染色法判定二分图 (dfs算法)
  • 链式前向星建图与搜索
  • 一般图最大匹配
  • CF2152G
  • 缩点(Tarjan 算法)
  • 平面图最短路(对偶图)
  • 多源汇最短路(APSP问题)
  • 最小生成树(MST问题)
  • 常见概念
  • 单源最短路径(SSSP问题)
  • CNCF项目记录2025-10
  • 代理
  • 双碳目标下,MyEMS 为何成为制造企业的 “刚需工具”?
  • 树上路径交
  • 10.23总结
  • 关于 vue项目 代理的坑;baseURL必须为空;代理才会生效
  • 点分治 / 树的重心
  • 10.21总结
  • 最近公共祖先 LCA
  • 题解:P3343 [ZJOI2015] 地震后的幻想乡
  • 暂存:P14214 [COI 2010] 圆圈 / KOLO
  • 树论大封装(直径+重心+中心)
  • QMPlayer2解析
  • 2025年10月广州单位办公室搬家公司全景解析报告,基于专业测评的技术、性能及市场优势深度分析