标签:style io os sp for bs ef amp nbsp
我最近学习了最小费用最大流;
我还是简略谈谈最小费用最大流吧
什么是最小费用最大流?
我们可以把最小费用看做是最短路;
简单吧!!!!
也就是一条边有两个权值;
一个为边权,另一个为流值;
什么是最大流?
当我们求出了最小费用时;
实质上求出了最短路;
而此时最大流为最短路上的每一条边的流值的最小值;
此时最小费用最大流为最短路的长度*最大流;
怎么求最小费用?
很简单!!!!!
我们就是求单源最短路径;
我们可以写spfa Dijkstra Bellman-Ford floyd(这个作死)
我们每次求完最小费用最大流时;
我们应把最短路上所有边反向;
使反向的边的边权为它所对应的正向边权的相反数;
而正向边的流值应减去最大流;反向边的流值应加上最大流(流值最开始为0);
哦!别忘了将正向边的流值为0的边的权值该为无穷大;(防止走重复的最短路);
我们一直这样操作,直到起点连不到终点,在退出,每次的最小费用最大流加起来则为总的最小费用最大流;
给作参考:
#include<stdio.h>
#include<stdlib.h>标签:style io os sp for bs ef amp nbsp
原文地址:http://blog.csdn.net/yyh5900/article/details/41823489