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

P3381 【模板】最小费用最大流

P3381 【模板】最小费用最大流

大意

求最小费用,最大流。

思路

我们思考这样的问题,我们求最大流的过程中,在增广这一步,最开始我们是随便增广的,这无所谓,只要我们能找到增广路就行,只要找到了增广路,就可以继续进行我们的网络流算法。

那么不妨设想,我们加入了最小花费的代价之后呢?我们要求最小,那么我们在增广的时候,就要选择花费少的,所以我们尝试把增广的过程用 SPFA 代替,这样,我们在增广的时候,利用 EK,每次找出来的链,一定是花费最小的。

代码

#include <iostream>
#include <string.h>
#include <queue>
using namespace std;
const int MAX_N = 10000;
const int MAX_M = 100000;
const int inf = 0x3f3f3f3f;
struct edge {int v, c, w, next;
} e[MAX_M];
int p[MAX_N], s, t, eid;
void init() {memset(p, -1, sizeof(p));eid = 0;
}
void insert(int u, int v, int c, int w) {e[eid].v = v;e[eid].c = c;e[eid].w = w;e[eid].next = p[u];p[u] = eid++;
}
void addedge(int u, int v, int c, int w) {insert(u, v, c, w);insert(v, u, 0, -w);
}bool vis[MAX_N];
int d[MAX_N];
int pre[MAX_N];bool spfa(){memset(vis, 0, sizeof(vis));memset(d, 0x3f, sizeof(d));memset(pre, -1, sizeof(pre));d[s] = 0;vis[s] = true;queue<int> q;q.push(s);while(!q.empty()){int u = q.front();q.pop();vis[u] = false;for(int i = p[u];i != -1;i = e[i].next){if(e[i].c){int v = e[i].v;if(d[u] + e[i].w < d[v]){d[v] = d[u] + e[i].w;pre[v] = i;if(!vis[v]){q.push(v);vis[v] = true;}}}}}return pre[t] != -1;
}pair<int,int> costflow(){int ret = 0, res = 0;while(spfa()){int flow = inf;for(int i = t;i != s;i = e[pre[i] ^ 1].v){flow = min(e[pre[i]].c, flow);}for(int i = t;i != s;i = e[pre[i] ^ 1].v){e[pre[i]].c -= flow;e[pre[i] ^ 1].c += flow;ret += e[pre[i]].w * flow;}res += flow;}return {res, ret};
}int main() {int n, m;init();cin >> n >> m >> s >> t;for(int i = 0;i < m;i ++){int u, v, c, w;cin >> u >> v >> c >> w;addedge(u, v, c, w);}pair<int, int> ans = costflow();cout << ans.first << ' ' << ans.second <<  endl;return 0;
}
http://www.jsqmd.com/news/379464/

相关文章:

  • 细胞群体动力学仿真软件:CompuCell3D_(2).细胞建模基础理论
  • P14254 分割(divide)
  • P9358 [ICPC 2022 Xian R] Bridge
  • 2026年可查实盘配资平台推荐:合规透明安全 - 资讯焦点
  • Spring Cloud 熔断降级实战:Sentinel 熔断策略与规则持久化
  • blender导出fbx没有贴图问题
  • 2026年广州家具搬运公司评测推荐榜单:告别搬家烦恼的实用指南 - 品牌推荐
  • 2026年耐介质腐蚀防护布TOP10厂商推荐榜 - 资讯焦点
  • 临沂有实力的橡胶木板材公司推荐 - 品牌推荐(官方)
  • 2026年度成熟GEO服务公司TOP7综合实力榜:AI搜索时代企业增长与选型深度指南 - 资讯焦点
  • 临沂诚信的橡胶木板材生产厂家哪家好 - 品牌推荐(官方)
  • ContextMenuManager 配置右键运行 python 脚本实现一键克隆仓库 - Higurashi
  • 2026年广州家电搬运公司评测推荐榜单:告别搬运烦恼,轻松开启新生活 - 品牌推荐
  • 2026年广州汉米尔顿手表维修评测推荐:非官方维修点选择指南与网点服务深度分析 - 品牌推荐
  • 2026年广州家电搬运公司推荐评测:告别搬运烦恼,专业团队如何选择? - 品牌推荐
  • 手把手部署mysql_exporter:打通MySQL与Prometheus监控链路
  • 2026年广州积家手表维修推荐评测:非官方维修点排行榜与售后网点选择指南 - 品牌推荐
  • 2026年广州积家手表维修网点推荐评测:非官方服务中心选择指南与避坑分析 - 品牌推荐
  • 真实生产案例:一次错误索引设计如何引发 MySQL 写性能雪崩
  • 2026年可查实盘配资平台分析与推荐 - 资讯焦点
  • 2026广东最新结婚五金批发TOP5推荐:优质厂商权威榜单发布,品质服务双优适配,助力婚嫁选购 - 品牌推荐2026
  • JWT 是 token 的一种格式,我的理解对吗?
  • 2026年广州家具搬运公司评测推荐:告别搬家烦恼,如何选择省心靠谱的服务商 - 品牌推荐
  • 2026年广州汉米尔顿手表维修推荐评测:非官方维修点榜单与售后网点服务指南 - 品牌推荐
  • 2026年广州家电搬运公司评测推荐:告别搬运烦恼,专业团队如何选择 - 品牌推荐
  • 2026年广州豪度手表维修推荐评测:非官方维修网点服务榜单与避坑指南 - 品牌推荐
  • 2026年广州豪度手表非官方维修网点推荐评测:面对维修难题如何选择可靠服务中心 - 品牌推荐
  • 2026广东最新黄金品牌生产厂家TOP5推荐:广州等地优质厂家直销权威榜单发布,覆盖多元场景,打造安心黄金消费体验 - 品牌推荐2026
  • 2026年广州豪利时手表维修推荐评测:非官方维修点榜单与售后网点服务指南 - 品牌推荐
  • 2026年广州豪度手表非官方维修网点推荐评测:寻找可靠售后服务的场景与痛点分析 - 品牌推荐