博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
傻瓜都能看懂的网络流ek算法(poj1273)
阅读量:7031 次
发布时间:2019-06-28

本文共 1574 字,大约阅读时间需要 5 分钟。

各种姿势鲁了一遍,这种姿势绝对是最适合写网络流的

邻接表的写法支持重边,支持稀疏图,易于查找反向边,添加一个标记即可删边,又没有vector的繁琐

这里傻呼呼的用容量和流量两个东西,而不是用残量,本人觉得前者更容易理解且调试得多,也并没有多开什么内存*_*

#include
#include
#include
#include
#include
using namespace std;const int maxn=208;const int INF=0x7f7f7f7f;struct fuck{ int u,v,flow,cap,next;}edge[maxn<<1];int n,m;int dis[maxn],pre[maxn];bool vis[maxn];int head[maxn<<1];int tol=0;void init(){ tol=0; memset(head,-1,sizeof(head));}void addedge(int u,int v,int w){ edge[tol].u=u; edge[tol].v=v; edge[tol].cap=w; edge[tol].flow=0; edge[tol].next=head[u]; head[u]=tol++; edge[tol].u=v; edge[tol].v=u; edge[tol].cap=0; edge[tol].flow=0; edge[tol].next=head[v]; head[v]=tol++;}int bfs(){ queue
q; memset(vis,false,sizeof(vis)); int u,v,i; q.push(1);dis[1]=INF;pre[1]=-1;vis[1]=true; while(!q.empty()) { u=q.front();q.pop(); if(u==n) break; for(i=head[u];i!=-1;i=edge[i].next) { v=edge[i].v; if(!vis[v]&&edge[i].cap>edge[i].flow) { dis[v]=min(dis[u],edge[i].cap-edge[i].flow); vis[v]=true; q.push(v); pre[v]=i; } } } if(!vis[n]) return -1; return dis[n];}int ek(){ memset(dis,INF,sizeof(dis)); int max_flow=0,u,v,fl; while(1) { fl=bfs(); if(fl==-1) break; u=n; while(u!=1) { edge[pre[u]].flow+=fl; edge[pre[u]^1].flow-=fl; u=edge[pre[u]].u; } max_flow+=fl; } return max_flow;}int main(){ int i,j,u,v,w; while(scanf("%d%d",&m,&n)==2) { init(); for(i=0;i

 

转载于:https://www.cnblogs.com/bitch1319453/p/4749231.html

你可能感兴趣的文章
掌握 MySQL 这 19 个骚操作,效率至少提高3倍
查看>>
【跃迁之路】【744天】程序员高效学习方法论探索系列(实验阶段501-2019.3.6)...
查看>>
用于大数据测试、学习的测试数据
查看>>
Software System Analysis and Design | 1
查看>>
JavaScript函数式编程,真香之组合(一)
查看>>
JavaScript链式调用实例浅析
查看>>
报表没完没了怎么办? | 润乾集算器提效报表开发
查看>>
记一次Hexo迁移
查看>>
RESTful API 中的 Status code 是否要遵守规范
查看>>
第十一天-《企业应用架构模式》-对象-关系行为模式
查看>>
[spring boot] jdbc
查看>>
新的开始!
查看>>
区块链— 比特币中的区块、账户验证和记账
查看>>
Electron打包,NSIS修改默认安装路径
查看>>
分享一些好用的网站
查看>>
【Android】Retrofit 2.0 的使用
查看>>
Nacos系列:基于Nacos的注册中心
查看>>
原生JS 实现复杂对象深拷贝(对象值包含函数)
查看>>
【跃迁之路】【732天】程序员高效学习方法论探索系列(实验阶段489-2019.2.22)...
查看>>
PAT A1060 科学记数法经典例题(全string库解决)
查看>>