洛谷 P3381 【模板】最小费用最大流 Dinic+Spfa

本文介绍了如何使用Dinic算法结合Spfa算法来解决洛谷P3381问题,即最小费用最大流。通过将费用转换为最短路问题,利用Spfa进行最短路径搜索,同时保持最大流,从而达到最小费用。文章强调在算法实现中需要注意初始化和细节处理。
摘要由CSDN通过智能技术生成

题目连接:

https://www.luogu.com.cn/problem/P3381

参考博客:

https://blog.csdn.net/A_Comme_Amour/article/details/79356220

这个博客关于网络流的知识总结的很全面,建议查看

算法:1:Dinic+Spfa

思路:

1:现在我们想象假如我们有一个流量网络,现在每个边除了流量,现在还有一个单位费用(按最短路),这条边的费用相当于它的单位费用乘上它的流量,(因为要多次bfs寻找源点s到汇点t的路径,每一次都可以找到一条流,找到的这条流的流量是确定的,但是这条流的路线却是可以变的,这就是一个求最短路的过程,把求最小费用转化为求最短路径用Spfa算法)我们要保持最大流的同时,还要保持边权最小,这就是最小费用最大流问题 
2:因为在一个网络流图中,最大流量只有一个,但是“流法”有很多种,每种不同的流法所经过的边不同因此费用也就不同,所以需要用到最短路算法 
3:每次增广的费用就是这次增广的最短路*这次的流量
4:关于Spfa:就是把Dinic中的bfs改成spfa,再求最大流的过程中最小费用流也就求出来了
5:注意:有许多初始化的地方容易漏易错

<
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值