挑戰 p236 poj 3469 網路流

2021-07-31 02:55:03 字數 1125 閱讀 6930

這種建模的方式挺經典的。。

對於最小費用化為兩個集合的 問題,   可以轉化為最小割。

然後如果屬於s,那麼就割掉到s的邊。。

還有就是在這裡的

模組組合   的概念。。。

要想切斷聯絡,就要付出費用,,所以 組合中的兩個頂點連邊

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

#define mem(a,b) memset(a,b,sizeof(a));

#define sf scanf

#define pf printf

#define ll long long

#define bug1 cout<<"bug1"vectorg[maxn];

bool vis[maxn];

int d[maxn];

int cur[maxn];

void init(int n)

void clearflow()

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

edges.push_back((edge));

m = edges.size();

g[from].push_back(m-2);

g[to].push_back(m-1);

} bool bfs() }}

return vis[t];

} int dfs(int x, int a)

}return flow;

} int maxflow(int s, int t)

return flow;

} vectormincut()

return ans;

} void reduce()

};dinic g;

int n,m;

int a[maxn*10],b[maxn*10];

int main()

for(int i=1;i<=m;++i)

int ans=g.maxflow(s,t);

pf("%d\n",ans);

}}

poj1459 網路流經典

題意 給幾個發電站,給幾個消耗站,再給幾個 點。發電站只發電,消耗站只消耗電,點只是 電,再給各個傳送線的傳電能力。問你消耗站能獲得的最多電是多少。思路 增加乙個超級源點,和超級匯點。把所給的發電站都和超級源點相連,把所給的消耗戰都和超級匯點相連。用ek求最大流。include include us...

挑戰408 一周網路 網路層(1)

網路層應該向運輸層提供什麼樣的服務?網際網路採用的思路是這樣的 網路層向上只提供簡單靈活的,無連線的,盡最大努力交付的資料報 這裡的資料報就是ip分組 服務。網路層不提供服務質量的承諾,也就是說,所傳送的分組可能出錯,可能丟失也可能重複或者失序。網際協議ip是是tcp ip協議中最重要的兩個協議之一...

挑戰408 一周網路 網路層(2)

ip位址空間利用率低。試想a類位址能表示 2 31 個網路位址,全球的主機數遠不止如此。每個物理網路都分配乙個網路號,會使得路由表過大。二級位址不夠靈活。劃分子網就是為了解決這些問題的。具體的思路如下 注意 劃分子網是在原來的ip位址的主機號進行劃分,而不改變ip位址原有的網路號。子網掩碼 那麼資料...