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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

EK算法应用,构图(POJ1149)

發布時間:2025/4/16 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EK算法应用,构图(POJ1149) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:http://poj.org/problem?id=1149

?

題意中有一點要注意,否則構圖就會有問題,每個顧客走后,被打開過的那些豬圈中的豬都可以被任意的調換到其他開著的豬圈中。

?

這里的構圖不是單一的相鄰,以及容量了,區別在于:他還要求這個容量,和連線。

?

這里的構圖是,以顧客為節點,源點s,匯點t,源點到顧客的容量是:顧客所能得到的豬的和cap[s][i] += h[tmp];

但是,要是這里有一點要注意的是,顧客與顧客之間的容量,為無窮大,因為上一個顧客有多少,就能夠給相鄰顧客多少,這里,什么是相鄰的顧客?

就是說,有公共鑰匙的人啦!

?

老實說,這個構圖,我一開始沒有想到,也是借鑒了別人的哦,再加上了自己的理解。

?

?

#include <stdio.h> #include <cstring> #include <queue> #include <algorithm>using namespace std;const int INF = 0x1f1f1f1f; const int MAXN = 110;int cap[MAXN][MAXN];int EK(int s, int t) {queue<int> q;int flow[MAXN][MAXN];int pre[MAXN];int node[MAXN];int maxflow=0;int u,v;memset(flow, 0, sizeof(flow));while(true) {memset(node, 0, sizeof(node));node[s] = INF;q.push(s);while(!q.empty()) {u = q.front();q.pop();for(v = 0; v <= t; ++v)if(!node[v] && cap[u][v] > flow[u][v]) {q.push(v);node[v] = min(node[u],cap[u][v]-flow[u][v]);pre[v] = u;}}if(node[t] == 0) break;for(int u = t; u != s; u = pre[u]) {flow[pre[u]][u] += node[t];flow[u][pre[u]] -= node[t];}maxflow += node[t];}return maxflow; }int main() {int i, j;int nn, mm;int tmp, m;int s, t;int h[1010]; ///豬的頭數int last[1010]; ///記錄豬圈上一個擁有鑰匙的人while(scanf("%d %d", &mm, &nn) != EOF) {memset(cap,0,sizeof(cap));memset(last,0,sizeof(last));s = 0, t = nn+1;for(i = 1; i <= mm; ++i)scanf("%d", &h[i]); for(i = 1; i <= nn; ++i) { ///客戶數scanf("%d", &m); ///有幾片鑰匙for(j = 0; j < m; ++j) {scanf("%d", &tmp);if(last[tmp] == 0)cap[s][i] += h[tmp];elsecap[last[tmp]][i] = INF; ///客戶到客戶last[tmp] = i;}scanf("%d", &cap[i][t]); ///客戶到匯點 }printf("%d\n",EK(s, t));}return 0; } View Code

?

轉載于:https://www.cnblogs.com/TreeDream/p/5510100.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的EK算法应用,构图(POJ1149)的全部內容,希望文章能夠幫你解決所遇到的問題。

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