日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

EK算法应用,构图(POJ1149)

發(fā)布時(shí)間:2025/4/16 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EK算法应用,构图(POJ1149) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

?

題意中有一點(diǎn)要注意,否則構(gòu)圖就會(huì)有問(wèn)題,每個(gè)顧客走后,被打開(kāi)過(guò)的那些豬圈中的豬都可以被任意的調(diào)換到其他開(kāi)著的豬圈中。

?

這里的構(gòu)圖不是單一的相鄰,以及容量了,區(qū)別在于:他還要求這個(gè)容量,和連線。

?

這里的構(gòu)圖是,以顧客為節(jié)點(diǎn),源點(diǎn)s,匯點(diǎn)t,源點(diǎn)到顧客的容量是:顧客所能得到的豬的和cap[s][i] += h[tmp];

但是,要是這里有一點(diǎn)要注意的是,顧客與顧客之間的容量,為無(wú)窮大,因?yàn)樯弦粋€(gè)顧客有多少,就能夠給相鄰顧客多少,這里,什么是相鄰的顧客?

就是說(shuō),有公共鑰匙的人啦!

?

老實(shí)說(shuō),這個(gè)構(gòu)圖,我一開(kāi)始沒(méi)有想到,也是借鑒了別人的哦,再加上了自己的理解。

?

?

#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]; ///豬的頭數(shù)int last[1010]; ///記錄豬圈上一個(gè)擁有鑰匙的人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) { ///客戶(hù)數(shù)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; ///客戶(hù)到客戶(hù)last[tmp] = i;}scanf("%d", &cap[i][t]); ///客戶(hù)到匯點(diǎn) }printf("%d\n",EK(s, t));}return 0; } View Code

?

轉(zhuǎn)載于:https://www.cnblogs.com/TreeDream/p/5510100.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。