类似标号法,本质为贪心算法。 var a:array[1..maxn,1..maxn] of integer; b,pre:array[1..maxn] of integer; {pre[i]指最短路径上I的前驱结点} mark:array[1..maxn] of boolean; procedure dijkstra(v0:integer); begin fillchar(mark,sizeof(mark),false); for i:=1 to n do b egin d[i]:=a[v0
#include using namespace std; int c[20][20]; //容量 int f[20][20]; //流量 int b[20]; //保存找到的增广路径,记录路径上结点i的前驱结点。 int sum; //最大流量。 int s, t, n; //假定:1是源点S;n是汇点T。 int min(int a, int b) { if (a > b) { return b; } return a; } //DFS找增广路径 bool findflow(int