【hjmmm网络流24题补全计划】

时间:2023-03-09 17:40:31
【hjmmm网络流24题补全计划】

本文食用方式
按ABC……分层叙述思路
可以看完一步有思路后自行思考

飞行员配对问题

题目链接
这可能是24题里最水的一道吧。。。
很显然分成两个集合
左外籍飞行员 右皇家飞行员
跑二分图最大匹配
输入注意:先m后n

太空飞行计划

A 本题建模
将任务和仪器各做一个集合的二分图
将任务向对应的仪器连边
B 使用点权
实验点权为正 仪器点权为负
C
首先引入一个概念——最大权闭合图

在一个图中,我们选取一些点构成集合,记为V,且集合中的出边(即集合中的点的向外连出的弧),
所指向的终点(弧头)也在V中,则我们称V为闭合图。
最大权闭合图即在所有闭合图中,集合中点的权值之和最大的V,我们称V为最大权闭合图。
那么这道题就是要求一个最大权闭合子图

最大闭合子图解法

从源点s向每个正权点连一条容量为权值的边,每个负权点向汇点t连一条容量为权值的绝对值的边,有向图原来的边容量全部为无限大。
求它的最小割,割掉后,与源点s连通的点构成最大权闭合子图,权值为(正权值之和-最小割)
详见:https://blog.****.net/can919/article/details/77603353
这道题的输入太太太毒瘤QAQ

最小路径覆盖

引入概念:简单路——顶点不相交的路
那么本题就是求无相交点的最小路径覆盖【已经知道啦
A 拆点
把点i拆成xi, yi
B 连边
当有边(i, j)时 加入一条从xi到yj的边
C 二分图
跑最大匹配 ###最小(不相交)路径覆盖 = 点数 - 最大匹配数
证:原本每个点都可以看作长度为零的路径
每有一个匹配 都是把一条路径的终点连到另一条路径的起点上
因为原图是DAG有向无环图 所以最小路径覆盖就减一
关于路径的输出
每一个没有被match的点都是最终的终点
从这些点回溯就能找到整条路经 用栈倒过来就可以了

魔术球

传送门

圆桌聚餐

一开始在想什么独立集什么的
但实际上直接跑最大流就行了
这种思路蒟蒻称为“分流”qvq
从S向每一个单位连一条容量为该单位人数的边
从T向每一个桌子连一条容量为该桌最大人数的边
从每一个单位向每一个桌子连一条容量为一的边
最大流等于总人数就成立 小于就不成立【显然不会大于啦 从S向外最大流就人数啊
代码