/**
Edmonds-Karp算法是最简单的网络流算法,当然也比较慢复杂度为O(V*E^2)
编写简单而且很好理解。。后面还会贴最快的dinic 算法
复杂度为O(E*V^2) ( E为边数,V为点数)
网络流是个大学科,实在变化莫测,各种建图技巧,可以说竞赛考网络流
90%考建图,图建好了,直接套模板即可
这里只是简单的网络流模板而已
真正的学问是把实际问题转换为网络流问题
百度百科里这样描述网络流:
网络流 network flows网络流的理论和应用在不断发展,出现了具有增益的流、
多终端流、多商品流以及网络流的分解与合成等新课题。网络流的应用已遍及
通讯、运输、电力、工程规划、任务分派、设备更新以及计算机辅助设计等众多领域。
据我所知:甚至炒股问题也可以转换为网络流来搞
由于我也只是能看懂模板套模板而已,真正对流的理解甚微,所以就不多说了,
网络流在竞赛中很常见,属于重点内容,图中的一大分支,要引起足够的重视
*/
//由于我是用手敲的,只做参考,还请自行严格测试
const int inf = 0x3f3f3f3f;
const int M = 100; // 结点数
int map[M][M], ans, n; //ans 为最大流, n为节点个数
int pre[M], que[M], vis[M];
bool bfs(int s, int t) { //源点为s, 汇点为t
int head=0, tail=1;
memset(vis, 0, sizeof(vis));
que[0] = s; //加入源点
vis[s] = true;
while (tail > head) {
EK算法(连接矩阵)
最新推荐文章于 2021-03-20 18:02:40 发布
本文介绍了Edmonds-Karp算法,一种简单的网络流算法,详细阐述其原理和复杂度,并提供了一个清晰的实现示例。强调网络流在竞赛编程中的重要性,指出实际问题转化为网络流问题的关键。同时,提到了网络流在多个领域的广泛应用,并提供了相关练习题。
摘要由CSDN通过智能技术生成