最小割

news/2025/10/24 12:31:41/文章来源:https://www.cnblogs.com/xihegudi/p/19162938

最小割

基础模型:构筑二分图,左半部 \(n\) 个点代表盈利项目,右半部 \(m\) 个点代表材料成本,收益为盈利之和减去成本之和,求最大收益。

建图:建立源点 \(S\) 向左半部连边,建立汇点 \(T\) 向右半部连边,如果某个项目需要某个材料,则新增一条容量 \(+\infty\) 的跨部边。

割边:放弃某个项目则断开 \(S\) 至该项目的边,购买某个原料则断开该原料至 \(T\) 的边,最终的图一定不存在从 \(S\)\(T\) 的路径,此时我们得到二分图的一个 \(S-T\) 割。此时最小割即为求解最大流,边权之和减去最大流即为最大收益。

signed main() {int n, m;cin >> n >> m;int S = n + m + 1, T = n + m + 2;Flow flow(T);for (int i = 1; i <= n; i++) {int w;cin >> w;flow.add(S, i, w);}int sum = 0;for (int i = 1; i <= m; i++) {int x, y, w;cin >> x >> y >> w;flow.add(x, n + i, 1E18);flow.add(y, n + i, 1E18);flow.add(n + i, T, w);sum += w;}cout << sum - flow.work(S, T) << endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/945170.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

费用流

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

图论常见结论及例题

图论常见结论及例题 常见结论要在有向图上求一个最大点集,使得任意两个点 \((i,j)\) 之间至少存在一条路径(可以是从 \(i\) 到 \(j\) ,也可以反过来,这两种有一个就行),即求解最长路;要求出连通图上的任意一棵生…

查询GPIO状态值(步骤)

查询GPIO状态值(步骤)1.导出GPIO(如果还没有被导出): echo 31 > /sys/class/gpio/export 2.查询是否导出成功 ls -lh /sys/class/gpio/gpio31 如果出现gpio31文件夹,说明gpio导出成功。开机时导出一次即可 3.查…

最长路(topsort+DP算法)

最长路(topsort+DP算法) 计算一张 \(\tt DAG\) 中的最长路径,在执行前可能需要使用 \(\tt tarjan\) 重构一张正确的 \(\tt DAG\) ,复杂度 \(\mathcal O(N+M)\) 。 struct DAG {int n;vector<vector<pair<…

最短路径树(SPT问题)

最短路径树(SPT问题)定义:在一张无向带权联通图中,有这样一棵生成树:满足从根节点到任意点的路径都为原图中根到任意点的最短路径。 性质:记根节点 \(Root\) 到某一结点 \(x\) 的最短距离 \(dis_{Root,x}\) ,在…

欧拉路径/欧拉回路 Hierholzers

欧拉路径/欧拉回路 Hierholzers欧拉路径:一笔画完图中全部边,画的顺序就是一个可行解;当起点终点相同时称欧拉回路。有向图欧拉路径存在判定 有向图欧拉路径存在:\(\tt ^1\) 恰有一个点出度比入度多 \(1\) (为起点…

无源汇点的最小割问题 Stoer–Wagner

无源汇点的最小割问题 Stoer–Wagner也称为全局最小割。定义补充(与《网络流》中的定义不同): 割:是一个边集,去掉其中所有边能使一张网络流图不再连通(即分成两个子图)。通过递归的方式来解决无向正权图上的全…

染色法判定二分图 (dfs算法)

染色法判定二分图 (dfs算法) 判断一张图能否被二分染色。 vector<int> vis(n + 1); auto dfs = [&](auto self, int x, int type) -> void {vis[x] = type;for (auto y : ver[x]) {if (vis[y] == type) {…

链式前向星建图与搜索

链式前向星建图与搜索 很少使用这种建图法。\(\tt dfs\) :标准复杂度为 \(\mathcal O(N+M)\)。节点子节点的数量包含它自己(至少为 \(1\)),深度从 \(0\) 开始(根节点深度为 \(0\))。\(\tt bfs\) :深度从 \(1\) …

一般图最大匹配

一般图最大匹配(带花树算法) 与二分图匹配的差别在于图中可能存在奇环,时间复杂度与边的数量无关,为 \(\mathcal O(N^3)\) 。下方模板编号从 \(0\) 开始,例题为 UOJ #79. 一般图最大匹配 。 struct Graph {int n;…

CF2152G

有一棵以 \(1\) 为根, \(n\) 个节点的树,每个节点有一个颜色白/黑。给定 \(q\) 组询问,每组询问给了一个 \(u\),表示将 \(u\) 子树内的点的颜色全部翻转。每次操作后回答至少需要几条从根开始的链才能覆盖所有黑点…

缩点(Tarjan 算法)

缩点(Tarjan 算法) (有向图)强连通分量缩点 强连通分量缩点后的图称为 SCC。以 \(\mathcal O (N + M)\) 的复杂度完成上述全部操作。性质:缩点后的图拥有拓扑序 \(color_{cnt}, color_{cnt-1},…,1\) ,可以不需再…

平面图最短路(对偶图)

平面图最短路(对偶图) 对于矩阵图,建立对偶图的过程如下(注释部分为建立原图),其中数据的给出顺序依次为:各 \(n(n+1)\) 个数字分别代表从左向右、从上向下、从右向左、从下向上的边。 for (int i = 1; i <=…

多源汇最短路(APSP问题)

多源汇最短路(APSP问题) 使用邻接矩阵存图,可以处理负权边,以 \(\mathcal{O}(N^3)\) 的复杂度计算。注意,这里建立的是单向边,计算双向边需要额外加边。 const int N = 210; int n, m, d[N][N];void floyd() {fo…

最小生成树(MST问题)

最小生成树(MST问题) (稀疏图)Prim算法 使用邻接矩阵存图,以 \(\mathcal{O}(N^2+M)\) 的复杂度计算,思想与 \(\tt djikstra\) 基本一致。 const int N = 550, INF = 0x3f3f3f3f; int n, m, g[N][N]; int d[N], v…

常见概念

常见概念oriented graph:有向图 bidirectional edges:双向边平面图:若能将无向图 \(G=(V,E)\) 画在平面上使得任意两条无重合顶点的边不相交,则称 \(G\) 是平面图。 无向正权图上某一点的偏心距:记为 \(ecc(u) = …

单源最短路径(SSSP问题)

单源最短路径(SSSP问题) (正权稀疏图)动态数组存图+Djikstra算法 使用优先队列优化,以 \(\mathcal O(M\log N)\) 的复杂度计算。 vector<int> dis(n + 1, 1E18); auto djikstra = [&](int s = 1) ->…

CNCF项目记录2025-10

毕业项目持续集成与交付:argo、flux 安全与规范:cert-manager、Falco、in-toto、Open Policy Agent、tuf 云原生网络:cilium 流式消息:cloudevents 容器运行时:containerd、cri-o 服务发现:CoreDNS、etcd 云原生…

代理

代理是一种设计模式StarService.java package com.itheima.demo4proxy; // 明星行为接口 public interface StarService {void sing(String name);String dance(); }Star.java package com.itheima.demo4proxy;import …

双碳目标下,MyEMS 为何成为制造企业的 “刚需工具”?

在 “碳达峰、碳中和” 目标全面推进的背景下,制造业作为能源消耗和碳排放的核心领域,正面临前所未有的减排压力与转型挑战。据统计,我国制造业能耗占全国总能耗的 60% 以上,碳排放占比超 50%—— 这意味着,制造业…