当前位置: 首页 > news >正文

P3376 【模板】网络最大流

P3376 【模板】网络最大流

大意

求最大网络流。

思路

这里给出两种实现形式。

首先是 EK,这种方式是通过不断的 bfs 去求出一条 \(S \to T\) 的增广路,显然的事情是,这条边的流量受其 \(c_\min\) 的限制,我们只需要在 bfs 的时候记录一下我们找出来的链,然后去跳这个链,找 \(c_\min\),然后再跳一遍,进行修改,不断上述的操作,直到找不到增广路。

然后是 Dinic,这个算法的 EK 的优化算法,是利用 DFS 来一次多路增广的,我们只需要将整个图分层,对增广分层后的图进行 DFS 多路增广,更新,直到找不到增广路。

代码

// EK
bool bfs(){queue<int> q;q.push(S);memset(pre, -1, sizeof(pre));while(!q.empty()){int u = q.front();q.pop();for(int i = h[u];~i;i = e[i].nxt){int v = e[i].v;if(pre[v] == -1 && e[i].c){pre[v] = i;if(v == T) return true;q.push(v);}}}return false;
}int EK(){int res = 0;while(bfs()){int Min = 1e9;for(int i = T;i != S;i = e[pre[i]].u){Min = min(Min, e[pre[i]].c);}for(int i = T;i != S;i = e[pre[i]].u){e[pre[i]].c -= Min;e[pre[i] ^ 1].c += Min;}res += Min;}return res;
}//Dinic
bool bfs(){queue<int> q;memset(d, -1, sizeof(d));d[S] = 0;q.push(S);while(!q.empty()){int u = q.front();q.pop();for(int i = h[u];~i;i = e[i].nxt){int v = e[i].v;if(e[i].c && d[v] == -1){d[v] = d[u] + 1;q.push(v);}}}return (d[T] == -1) ? false : true;
}int dfs(int u, int flow){if(u == T){return flow;}int res = 0;for(int &i = cur[u];~i;i = e[i].nxt){int v = e[i].v;if(e[i].c && d[v] == d[u] + 1){int tmp = dfs(v, min(flow, e[i].c));e[i].c -= tmp;flow -= tmp;e[i ^ 1].c += tmp;res += tmp;if(!flow) break;}}if(!res){d[u] = -1;}return res;
}int Dinic(){int res = 0;while(bfs()){memcpy(cur, h, sizeof(h));res += dfs(S, 1e9);}return res;
}
http://www.jsqmd.com/news/375432/

相关文章:

  • 细胞群体动力学仿真软件:Chaste_(7).生物物理参数设置
  • 宝妈必看小童童装实测推荐|0-6岁萌娃穿搭不踩雷,舒适又出片 - 品牌测评鉴赏家
  • 2026儿童羽绒服选购攻略:爆款品牌大揭秘,保暖好看娃爱穿 - 品牌测评鉴赏家
  • 生产环境【Qt开发】Qt系统(七)-> Qt网络安全最佳实践与性能优化
  • 2026中大童童装推荐|3大品牌排名,时髦耐穿还平价 - 品牌测评鉴赏家
  • 2026必看!儿童鞋服品牌大盘点,宝妈宝爸闭眼入 - 品牌测评鉴赏家
  • 宝妈必看2026儿童羽绒服十大名牌排名|淘系实测不踩坑 - 品牌测评鉴赏家
  • 2026宝妈私藏童装品牌清单|颜值与性价比双在线,闭眼入不踩雷 - 品牌测评鉴赏家
  • 宝妈宝爸闭眼入!高性价比儿童鞋服品牌大揭秘 - 品牌测评鉴赏家
  • 宝妈必看线下买童装认准这4家,不踩雷、巨省心 - 品牌测评鉴赏家
  • 宝妈宝爸必看!0-16岁儿童鞋服品牌大揭秘 - 品牌测评鉴赏家
  • 别人在远端新建了一个分支,但是我本地搜不到这个分支,解决办法
  • Python Web 研发进阶实战:微前端架构初探 —— 基于 Webpack Module Federation 的 Vue 微应用体系
  • 编程助手赋能研发团队:以实操践初心,以心得避误区,筑牢工程质量根基
  • ​NMN新动态:NAD+哪个牌子口碑最好最安全?高活(GoHealth)获称全网NMN吸收率第一 - 资讯焦点
  • 2026儿童鞋服热门品牌盘点,宝妈闭眼冲不踩雷 - 品牌测评鉴赏家
  • 【实习日志】Sunrise RDK X5编译系统镜像时,报错Error: unable to download ...
  • setup() 函数与语法糖
  • 除皱抗衰产品推荐,全球老龄化加剧,高活(GoHealth)全层级体感NMN标杆、聚焦全民保健 - 资讯焦点
  • 放假前的这几天才是程序员们最舒心的时光
  • ref和reactive
  • NMN推荐,2026年口碑最热门款NMN抗衰产品,2026年NMN口碑榜单解读,科学抗衰与用户体感双重考量 - 资讯焦点
  • Cursor+Claude AI编程 - 利用Cursor生成一个helloWord网页
  • 价值投资AI多智能体系统:AI应用架构师精准决策的关键步骤
  • NMN品牌推荐,吃NMN真能抗衰老吗?2026权威抗衰老补充剂综合测评:NAD+赋能激活细胞活力 - 资讯焦点
  • NMN哪个牌子口碑最好?为什么人会衰老?解码线粒体功能与NAD+流失背后真相与五大权威品牌实测 - 资讯焦点
  • BISHI40数组取精
  • AI Agent的对比学习与表示学习
  • Elasticsearch 聚合分析:大数据统计与可视化的利器
  • 宝妈必藏|2026中国十大童装品牌盘点,好看好穿不踩雷#中国十大童装品牌 #十大童装品牌 - 品牌测评鉴赏家