#include#include#include#includeusing namespace std;#define maxn 444 //鄰接表要開邊數的2倍
struct edgeedge[maxn];
int level[maxn];//標記層次(距離標號)
//間隙優化,定義gap[i]為標號是i的點的個數
//在重標記i時,檢查gap[level[i]],若減為0,這演算法結束。
int gap[maxn];
int pre[maxn];//前驅
int cur[maxn];
int head[maxn];
int nv,ne;
//ne為邊數,初始化為0;
void insert(int u,int v,int cap,int cc=0)
//引數,源點,匯點
int sap(int vs,int vt)
}if((--gap[level[u]])==0)break;//更新gap陣列後如果出現斷層,則直接退出。
level[u]=minlevel+1;//重標號
gap[level[u]]++;//距離標號為level[u]的點的個數+1;
u=pre[u];//轉當前點的前驅節點繼續尋找可行弧
}return maxflow;
} int main()
printf("%d\n",sap(1,nv));
}return 0;
}
模板 網路最大流 最大流
給出乙個網路圖,以及其源點和匯點,求出其網路最大流。in put role presentation inp utin put4 5 4 3 4 2 30 4 3 20 2 3 20 2 1 30 1 3 40ou tput role presentation out puto utpu t50最大...
模板 網路最大流 最大流
給出乙個網路圖,以及其源點和匯點,求出其網路最大流。in put role presentation inp utin put4 5 4 3 4 2 30 4 3 20 2 3 20 2 1 30 1 3 40ou tput role presentation out puto utpu t50最大...
最大流模板
2015年1月30日更新 include include include include include include include include include include include include typedef unsigned int uint typedef long lo...