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

P3381 【模板】最小费用最大流 题解 最小费用最大流SSP算法模板

题目链接:https://www.luogu.com.cn/problem/P3381

解题思路:完全来自 oi.wiki

代码对应我之前写的 最大流Dinic模板 + oi.wiki 上 基于dinic的修改。

示例程序:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 5e3 + 5, maxm = 1e5 + 5, inf = 0x3f3f3f3f;struct Edge {int v, w, c, nxt;
} edge[maxm];
int n, m, s, t, head[maxn], ecnt;void init() {ecnt = 0;fill(head+1, head+n+1, -1);
}void add_edge(int u, int v, int w, int c) {edge[ecnt] = { v, w, c, head[u] }; head[u] = ecnt++;edge[ecnt] = { u, 0, -c, head[v] }; head[v] = ecnt++;
}int dis[maxn], cur[maxn], sum_cost;
bool vis[maxn];bool spfa() {queue<int> que;fill(dis, dis+n+1, inf);dis[s] = 0;vis[s] = true;que.push(s);while (!que.empty()) {int u = que.front();que.pop();vis[u] = false;for (int i = head[u]; ~i; i = edge[i].nxt) {auto &[v, w, c, nxt] = edge[i];if (w > 0 && dis[u] + c < dis[v]) {dis[v] = dis[u] + c;if (!vis[v]) {vis[v] = true;que.push(v);}}}}return dis[t] < inf;
}int dfs(int u, int flow) {if (u == t)return flow;vis[u] = true;int ans = 0;for (int &i = cur[u]; ~i && ans < flow; i = edge[i].nxt) {auto &[v, w, c, nxt] = edge[i];if (!vis[v] && w > 0 && dis[v] == dis[u] + c) {int f = dfs(v, min(w, flow - ans));if (f > 0) {ans += f;sum_cost += f * c;edge[i].w -= f;edge[i^1].w += f;}}}vis[u] = false;return ans;
}int dinic() {int ans = 0;while (spfa()) {copy(head+1, head+n+1, cur+1);int f = dfs(s, inf);ans += f;}return ans;
}int main() {cin >> n >> m >> s >> t;init();for (int i = 0, u, v, w, c; i < m; i++) {cin >> u >> v >> w >> c;add_edge(u, v, w, c);}int max_flow = dinic();cout << max_flow << " " << sum_cost << "\n";return 0;
}
http://www.jsqmd.com/news/710145/

相关文章:

  • 基于MCP协议构建个性化AI知识库:FeedNest MCP Server实战指南
  • 3个颠覆性技巧:彻底解决网盘限速问题的终极方案
  • Python subprocess模块学习总结
  • 能量模型在机器人策略学习中的优势与应用
  • 基于MCP协议的本地AI应用工具化与记忆增强实践
  • 2026年青岛搬家公司精选推荐:同城 / 长途 / 钢琴 / 工厂搬迁一站式服务 - 海棠依旧大
  • 固件签名验证失效=裸奔上线:从X.509证书链裁剪、ECDSA-P256密钥硬件绑定到BootROM级公钥固化,一套完整防篡改固件开发闭环(含航天某院实测数据)
  • Python实现季节性持续预测:时间序列分析实战
  • 为什么买来的 AI 用了半年反而“变蠢”了:拆解数据飞轮与持续学习闭环
  • AI代码隔离实战指南(生产级Docker Sandbox架构设计全图谱)
  • CogVideoX-2b实战:用英文提示词生成高质量视频的秘诀
  • LangForce框架:视觉语言动作模型的贝叶斯优化
  • VSCode 接入GPT-5.3-codex 大模型配置指南
  • Winhance中文版:终极Windows系统优化工具完全指南 [特殊字符]
  • MAA明日方舟助手:3大核心功能让你告别手动刷图!
  • C语言写传感器驱动的7个致命错误(92%农用IoT项目因第4条返工超3轮)
  • 离散状态空间概率路径建模与TV稳定性分析
  • ArtLLM框架:基于语言模型的3D关节物体生成技术
  • 业务接口脆弱性排查:杜绝恶意请求与低频渗透攻击
  • 企业内部通讯软件是什么?2026 年信创时代的企业数字安全底座
  • 揭秘Copilot Next自动化工作流底层机制:3个核心源码模块解析+4步零误差配置法
  • 终极wxappUnpacker指南:3步掌握微信小程序逆向分析
  • 从汽车到工业:一文搞懂CAN总线的物理层与协议层(附TJA1050芯片接线图)
  • 2026年南通留学机构哪家通过率高:五家优选深度解析 - 科技焦点
  • 突破百度网盘限速:Python直连解析工具实现30倍下载加速终极指南
  • 鸿蒙 Account Kit:静默登录(五)
  • 终极隐私保护!Windows本地实时语音转文字工具全攻略
  • 第三十五天(4.27)
  • NoFences:免费开源桌面分区工具,彻底告别Windows桌面混乱
  • 如何快速掌握麻将AI助手:终极实战指南提升雀魂技巧