最大流模板
来源:互联网 发布:ps软件如何放大 编辑:程序博客网 时间:2024/06/05 04:10
struct edge{ int to,cap,rev; edge(int a,int b,int c) { to=a,cap=b,rev=c; }};vector<edge>G[maxn];int level[maxn];int iter[maxn];void add_edge(int from,int to,int cap) { G[from].push_back(edge(to,cap,G[to].size())); G[to].push_back(edge(from,0,G[from].size()-1));}void bfs(int s) { memset(level,-1,sizeof(level)); queue<int >que; level[s]=0; que.push(s); while(!que.empty()) { int v=que.front(); que.pop(); for(int i=0;i<G[v].size();i++) { edge &e=G[v][i]; if(e.cap>0 && level[e.to]<0) { level[e.to]=level[v]+1; que.push(e.to); } } }}int dfs(int v,int t,int f) { if(v==t) return f; for(int &i=iter[v];i<G[v].size();i++) { edge &e=G[v][i]; if(e.cap > 0 && level[v]<level[e.to]) { int d=dfs(e.to,t,min(f,e.cap)); if(d>0) { e.cap-=d; G[e.to][e.rev].cap+=d; return d; } } } return 0;}int max_flow(int s,int t) { int flow=0; for(;;) { bfs(s); if(level[t]<0) return flow; memset(iter,0,sizeof(iter)); int f; while( (f=dfs(s,t,INF)) > 0 ) flow+=f; }}
0 0
- 最大流算法模板
- 最大流算法模板
- 最大流模板
- 最大流模板
- 最大流ISAP模板
- 最大流模板
- 最大流模板
- 最大流模板
- 最大流模板
- 最大流模板
- 最大流模板
- 最大流模板
- 最大流dinic模板
- 最大流Dinic模板
- 最大流 ISAP 模板
- 最大流dinci模板
- 最大网络流 模板
- 最大流模板
- javascript中的闭包
- 黑马程序员----集合框架(二)
- IOS菜鸟的所感所思(四)——自定义UICollectionViewCell以及网络数据的添加。
- Sublime Text 2 配置记录
- synchronized和volatile比较
- 最大流模板
- iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
- 理解restFul架构---之认识
- linux基础
- (15.1.5)无聊的时候我们就去翻妹子们的微博
- iOS开发系列--视图切换
- RandomAccessFile使用
- WIN7(64位)安装Python模块py-radix
- Linux下实现“任意键继续”