POJ 3436 網路流 最大流 輸出路徑

2022-06-09 10:15:12 字數 1085 閱讀 9408

這裡的輸出路徑不太理解

#include#include#include#include#include#include#include#includeusing namespace std;

const int maxn=110;

const int inf=0x3f3f3f3f;

int p1,n,m;

int s,t;

int q[maxn],port[maxn][maxn];

struct node;

struct edge

};vectoredges;//這裡的邊是實際邊數的兩倍,包括反向邊

vectorg[maxn];//鄰接表,g[i][j]表示結點i的第j條邊在edges陣列中的序號

int a[maxn];//a[i]表示起點到i的可改進量

int p[maxn];//edges陣列中的編號,最短路圖上p的入弧編號

void init(int n)

void addedge(int from, int to, int cap)

int maxflow(int s, int t)

}if (a[t]) break;

}if (!a[t]) break;

for (int u = t; u != s; u = edges[p[u]].from)

flow += a[t];

}return flow;

}int main()

}if(flag)

addedge(s,i,inf);

flag=true;

for(int j=0;j>port[i+n][j];

if(port[i+n][j]!=1)

flag=false;

}if(flag)

addedge(i+n,t,inf);

}for(int i=1;i<=n;i++)

addedge(i,i+n,q[i]);

for(int i=n+1;i<=2*n;i++));}}

cout

return 0;

}

poj 3436 網路流基礎題

題目鏈結 題意 題意確實難讀。首先給出p,n 兩個數 表示有p臺工具機來組裝電腦,每台電腦有n個零件需要組裝 接著p行,每行描述一台工具機 共2 n 1個數字,第乙個數字表示每單位時間該工具機能處理多少未完成品 接下來n個數字表示該工具機能接受的未完成品型別 0表示該零件不能存在 1表示該零件必須存...

POJ 3436網路流 拆點 簡單處理

寫的第一道網路流。非板題。網路流貌似核心是在於建圖的處理。poj 3436 看了題解才做出來。要求規劃出合法生產線,這種形式基本就和網路流相關了。具體題意是 有乙個產品,有k個部件,給出n臺機器,每台機器接受一定的半成品,輸出新的半成品。最終成品是全部部件都在的成品。每個機器都有單位時間最大生產量,...

poj3436(拆點最大流)

題意 給你p和n,p代表每台計算器需要幾個部分組成,n代表有幾個組裝機器,接下來n行,每行第乙個數代表這台機器能夠每小時組裝幾台,剩下前三個數字表示使用這台機器需要的前置條件 0代表當前組裝不能有這個部分,1代表得有,2代表無所謂 剩下三個數字表示使用這台機器後的組裝有那幾個部分,問你最多能組裝多少...