网络流的建模方法总结

本文总结了网络流的建模方法,包括基础建模、辅助点模拟决策、描述决策状态、经典建模如互不攻击问题,以及解决“一面对多面”和“同时做”问题的策略。通过实例解析了如何根据题目要求正确建立网络流模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章持续更新(咕咕咕

在网络流的题目中,建模一定是题目中的重点+难点,

下面总结一些网络流的建模套路

一,最基础的建模:两种方案如何决策

例题:p1402 https://www.luogu.org/problemnew/show/P1402

为什么说是基础呢?因为题目中的条件很明显地指向两个方案,

对应流图中是连s还是t;

并且,要求最大满意数,就是利用网络流算法调节流量的功能,

做出一个最优的决策。

1,如何建立节点?如何连边?

网络流的建模中,流图中的每一条边都要对应题目中的一种状态,

所以,A喜欢菜品B,就将B与A连边,A喜欢房间C,就将A与C连边

注意,建立后的图一定是一个流图!(定义自行百度)

最后,s与所有菜品连边,房间与t连边;

2,容量的确定

确定容量非常重要,这题中;算法选择了一条边后,相当于满足了一个人的要求

所以,人与菜品或房间之间的边容量应为1

至于s与菜品连的边容量是多少呢?

我们不知道到底有多少人喜欢一种菜品;

后面已经有容量为1的边了,可以限制流量;

那么容量就是INF!

3,拆点的重要性

到这里,看似建模已经完成了,但是这里面有一个巨大的漏洞

试想一下,假设只有一个人,他喜欢100中菜品,喜欢100中房间

那么最大流跑出来会是多少呢?流量显然是100!

这就相当于只有1个人,算出来却满足了100人!

所以要进行拆点,将人拆成A1与A2,两者之间连一条容量为1的边,就可以了

拆点可以化点为边,进行流量限制

二,辅助点模拟决策集合

例题:p1361 https://www.luogu.org/problemnew/show/P1361

1,流量确定+最大流最小割定理

网络中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值