题目连接:
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:注意:有许多初始化的地方容易漏易错
<