日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网络流sap需要注意的地方

發布時間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络流sap需要注意的地方 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
int sap(){memset(level, 0, sizeof level);memset(gap, 0, sizeof gap);memset(cur, 0, sizeof cur);int u = pre[s] = s;int aug = inf;gap[s] = n;這個要使源點gap值為點個數int v;int flow = 0;while(level[s] < n){for(v = cur[u]; v < n; v ++){if(c[u][v] > 0 && level[u] == level[v] + 1){break;}}if(v < n){pre[v] = u;if(aug > c[u][v]) aug = c[u][v];u = cur[u] = v;if(u == t){flow += aug;for(v = t; v != s; v = pre[v]){if(c[pre[v]][v] != inf)c[pre[v]][v] -= aug;if(c[v][pre[v]] != inf)c[v][pre[v]] += aug;}aug = inf, u = s;}}else{int min_label = t;這個要從t開始,因為如果都不滿足的話min_label就是t了,也就是最大for(v = 0; v < n; v ++){if(c[u][v] > 0 && min_label > level[v]){cur[u] = v;min_label = level[v];}}if(--gap[level[u]] == 0) return flow;level[u] = min_label + 1;gap[level[u]] ++;u = pre[u];}}return flow; }

轉載于:https://www.cnblogs.com/louzhang/archive/2012/08/17/2644200.html

總結

以上是生活随笔為你收集整理的网络流sap需要注意的地方的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。