這裡的輸出路徑不太理解
#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代表無所謂 剩下三個數字表示使用這台機器後的組裝有那幾個部分,問你最多能組裝多少...