Dinic模版+SAP模版
来源:互联网 发布:csgo显卡优化 编辑:程序博客网 时间:2024/05/17 07:16
我的板qwq 好像常数要大一些..
bool bfs(){ int u,v; memset(h,-1,sizeof(h)); queue<int> q; h[1]=0; q.push(1); while(!q.empty()){ u = q.front();q.pop(); for(int i=head[u];~i;i=e[i].next){ v = e[i].to; if(e[i].cap>0&&(!~h[v])){ h[v]=h[u]+1; q.push(v); } } } return ~h[n*m]?true:false;}int dfs(int u,int f){ if(u==n*m)return f; int tmp,v; for(int i=head[u];~i;i=e[i].next){ v=e[i].to; if(e[i].cap>0&&h[v]==h[u]+1){ tmp=dfs(v,min(f,e[i].cap)); if(tmp>0){ e[i].cap-=tmp; e[i^1].cap+=tmp; return tmp; } } } h[u]=-1; return 0;}void dinic(){ while(bfs()){ ans+=dfs(1,INF); }}
黄学长的板qwq
(向黄学长低头orz。)
bool bfs(){ int now,i; memset(h,-1,sizeof(h)); int t=0,w=1; q[t]=1;h[1]=0; while(t<w) { now=q[t];t++; i=head[now]; while(i) { if(e[i].v&&h[e[i].to]<0) { q[w++]=e[i].to; h[e[i].to]=h[now]+1; } i=e[i].next; } } if(h[n*m]==-1)return 0; return 1;}int dfs(int x,int f){ if(x==n*m)return f; int i=head[x]; int w,used=0; while(i) { if(e[i].cap&&h[e[i].to]==h[x]+1) { w=f-used; w=dfs(e[i].to,min(w,e[i].cap)); e[i].cap-=w; e[i+1].cap+=w; used+=w; if(used==f)return f; } i=e[i].next; } if(!used)h[x]=-1; return used;}void dinic(){ while(bfs()){ ans+=dfs(1,INF); }}
神大的学长给的SAP板
int dfs(int x,int flow){ if(x==T) return flow; int tmp=res=0; for(int i=last[x];i;i=next[i]) if (d[x]==d[v[i]]+1 && w[i]>0){ last[x]=i; tmp=dfs(v[i],min(flow-res,w[i]); res+=tmp;w[i]-=tmp;w[i^1]+=tmp; if (res==flow) return flow; } if (d[1]>=n) return res; vd[d[x]]--; if (vd[d[x]]==0) d[1]=n; d[x]++;vd[d[x]]++; last[x]=top[x]; return res; } int SAP{ memset(d,0,sizeof(d)); memset(vd,0,sizeof(vd); for (int i=1;i<=n;i++) last[i]=top[i]; int ans=0; while (d[1]<n) ans+=dfs(S,1e9); return ans; }
1 0
- Dinic模版+SAP模版
- Dinic最大流模版
- poj 3281 Dinic模版题
- 最大流dinic总结模版
- 最大流模版Dinic算法
- Sap算法模版
- 模版
- 模版
- 模版
- 模版
- 模版
- 模版
- 模版
- 模版
- 模版
- 模版
- 模版
- 模版
- MYSQL 授权
- forward内部跳转 和redirect重定向跳转的区别
- 实体类实现序列化引起的问题
- 简单的登录界面
- Makfile详解-工作流程
- Dinic模版+SAP模版
- MySql之子查询
- Debian系统的使用
- java将exception的stack trace 转为string
- IOS 打包Ad Hoc
- 欢迎使用CSDN-markdown编辑器
- iOS 利用 framework 进行动态更新
- LeetCode 154. Find Minimum in Rotated Sorted Array II
- ORACLE数据库建表报错ORA-00904:invalid identifier标识符无效