摘要:
void SPFA(int src){ queue<int> myqueue; int i,j; memset(final,0,sizeof(final)); memset(pre,-1,sizeof(pre)); myqueue.push(src); for(i=0;i<=ncount;++i) //SPFA算法与Dij不同,SPFA初始化时将除源点以外所有点的最短距离初始化无... 阅读全文
摘要:
步骤0:初始可行0流步骤1:如果不存在最小费用流,则计算结束,已经找到最小费用流;否则,用最短路算法(由于存在负圈,只能采用SPFA或者Bellman-Ford算法)在残留网络中找到源点到终点的最小费用可增广路,转步骤2。步骤2:沿找到的最小费用可增广路增流,并转步骤1 。int maxData = 10000000;bool final[105]; //SPFA算法中标识结点是否在队列中 int... 阅读全文
摘要:
//类型:最小费用流问题(此题的关键在于建图)算法:最小费用路算法(见《算法分析与设计》P312页) 构图:由于有K种商品,但是每一种商品的图其实是独立的。所以,我们可以构K次二分图。每次,新增源点src和汇点des,src向提供者连弧,容量为给定值,费用为0;提供者向购买者连弧,容量应为给定值(如果容量为maxlongint则会超时),费用为给定值;购买者向des连弧,容量为给定值,费用为0。显... 阅读全文