網路流(持續更新)

2021-09-16 14:28:32 字數 2075 閱讀 3209

最後一種最快, 前兩種彼此彼此

紫書模板

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

struct edge;

int n, m;

vectoredges; //邊數的兩倍

vectormp[maxn]; //鄰接表,mp[i][j]表示節點i的第j條邊在e陣列中的序號

int dis[maxn]; //從起點的i的距離

int cur[maxn]; //當前弧

void add(int s, int t, int c) );

edges.push_back((edge));

int m=edges.size();

mp[s].push_back(m-2);

mp[t].push_back(m-1);

}bool bfs(int s, int t) }}

return 0;

}int dfs(int now, int t, int f)

}if(!flow) dis[now]=-2;

return flow;

}int dinic(int s, int t)

return flow;

}int main()

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

const int inf=2e9+10;

struct edge;

int n, m;

vectormp[210];

int dis[210], cur[210];

void init() }}

return 0;

}int dfs(int now, int t, int f) }}

if(!flow) dis[now]=-2;

return flow;

}int dinic(int s, int t)

}return flow;

}int main()

printf("%d\n", dinic(1,m));

}return 0;

}

經過部分取捨後

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

const int inf=1e9+7;

const int maxd=50, maxe=500;

int head[maxd], tot;

int s, t;

struct edge

edge(int x, int y, int a, int c):from(x),to(y),cap(a),next(c) {}

}eage[maxe*2];

void add(int x, int y, int a)

bool used[maxd], vis[maxd];

int dis[maxd];

queueq;

int ans=0;

bool spfa() }}

}return (dis[t]}int dfs(int u, int flow)

vis[u]=true;

int ret=0;

for(int i=head[u]; ~i; i=eage[i].next)

}if(!ret) dis[u]=-1;

return ret;

}int dinic()

int n, m;

int a[22][22];

void init()

int main()

網路流最小割相關(持續更新)

12.6 今天看了下網路流,本想寫一篇部落格,但是想了想,畫圖太費勁,證明也不算特別難,那就先咕著了。前置知識 網路最大流 最好是dinic演算法 最大流最小割定理。一 割邊最少的最小割 題目 hdu3987 hdu6214 雙倍經驗 方法一 一次dinic 我們首先考慮,如何在求最大流的同時兼顧最...

我做過的網路流題(持續更新)

三個月前學的網路流,當時其實也是沒有太明白,就是套著模板做了幾道模板題,這裡就不再說啦。這兩天有從新翻出了網路流來做,大致是按照那個 網路流建模彙總 做的 poj1149 有m個豬圈和n個顧客,每個顧客可以取走指定豬圈裡一定限制內的豬,取完後可以把所有他可以取得豬圈裡的豬任意移動。這道題可以先模擬出...

網路程式設計雜項 (持續更新)

by fireworks2 foxmail.com 記錄一些小問題,陷阱 1.呼叫bind時,如果位址是0 就是inaddr any那個巨集 就繫結本地所有ip,如果埠是0,就隨機選擇乙個可用的埠 想要知道具體埠,可以呼叫getsockname檢視 2.send recv 與 read write ...