最新要闻
- 每日关注!南昌大学举办潘际銮教育思想研讨会
- 伛偻提携往来而不绝者滁人游也翻译_伛偻提携_焦点热文
- 嫁入豪门?前世界首富目不转睛盯着谷爱凌,搂着爱凌合影很兴奋
- “星级酒店”旅游专列今日发车:双人大床房 24小时管家
- 暗黑4再次公测
- 当前速读:上海一商场特斯拉展车喇叭响不停 销售员束手无策 路人纷纷堵耳
- 华为实现自主可控的MetaERP研发:我们已经突破封锁 我们活了下来-环球速看
- 环球即时:德国男单全军覆没!世界冠军1:3输球,世界第六现场脱衣服换球服
- 双鱼座今日运势_双鱼座男生讨厌女生_今日看点
- 仰望U8市区上路 体型硕大:一旁70万的途锐秒变高尔夫
- 马斯克不止星舰发射失败 特斯拉暴跌近10%:市值一夜蒸发3780亿元
- 全球视讯!剧情够毁灭!漫威宣布《复仇5》 明年开拍:国人不爱看 不符合文化观?
- 世界速递!2399元起加量还减价!小米平板6 Pro今日首销:升级神U骁龙8+
- 探访风波中的宝马mini展台
- 笔趣阁校花的贴身高手小说_笔趣阁校花的贴身高手 每日简讯
- 超预期!世界打开中国经济“一季报”的正确姿势
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
网络流的C++代码实现与过程讲解
(相关资料图)
网络流是一种非常重要的图论算法,它在许多实际问题中得到广泛应用。本文将介绍网络流算法的C++代码实现与过程讲解。
算法概述
网络流算法是通过将图中的边看作流量通道,将图的点看作流量的起点或终点,来求解图中的最大或最小流量的问题。它是一种非常重要的最优化算法,广泛应用于图论、运筹学、计算机网络等领域。
网络流算法有很多种,其中最著名的是Ford-Fulkerson算法和Edmonds-Karp算法。这两种算法都使用了增广路径来寻找最大流量。本文将介绍Ford-Fulkerson算法的实现。
Ford-Fulkerson算法的C++实现
Ford-Fulkerson算法的实现过程比较简单,我们可以使用BFS(宽度优先搜索)来寻找增广路径。具体实现步骤如下:
1.定义一个二维数组graph来表示图的邻接矩阵,并初始化为0;2.定义一个一维数组parent来记录每个节点在BFS中的父节点,并初始化为-1;3.定义一个整数变量source表示源点,一个整数变量sink表示汇点;4.定义一个整数变量maxflow表示图中的最大流量,并初始化为0;5.使用BFS来寻找增广路径,如果找到了一条增广路径,则更新图中的流量,并更新maxflow;6.重复执行步骤5直到找不到增广路径为止。
以下是Ford-Fulkerson算法的C++实现代码(假设图已经被存储在graph中):
// Ford-Fulkerson算法#include using namespace std;const int INF = 0x3f3f3f3f;int graph[1010][1010]; // 图的邻接矩阵int parent[1010]; // 记录每个节点在BFS中的父节点int source, sink; // 源点和汇点int N, M; // 图的节点数和边数// BFS算法,寻找增广路径bool bfs() { memset(parent, -1, sizeof(parent)); queue q; q.push(source); parent[source] = -2; while (!q.empty()) { int u = q.front(); q.pop(); for (int v = 0; v < N; v++) { if (parent[v] == -1 && graph[u][v] > 0) { parent[v] = u; if (v == sink) { return true; } q.push(v); } } } return false;}// Ford-Fulkerson算法int ford_fulkerson() { int maxflow = 0; while (bfs()) { int pathflow = INF; for (int v = sink; v != source; v = parent[v]) { int u = parent[v]; pathflow = min(pathflow, graph[u][v]); } for (int v = sink; v != source; v = parent[v]) { int u = parent[v]; graph[u][v] -= pathflow; graph[v][u] += pathflow; } maxflow += pathflow; } return maxflow;}int main() { cin >> N >> M; memset(graph, 0, sizeof(graph)); for (int i = 0; i < M; i++) { int u, v, w; cin >> u >> v >> w; graph[u][v] += w; } cin >> source >> sink; int maxflow = ford_fulkerson(); cout << maxflow << endl; return 0;}
算法分析
在以上代码中,我们首先定义了一个二维数组graph来存储图的邻接矩阵,然后使用BFS来寻找增广路径,如果找到了一条增广路径,则更新图中的流量。我们可以发现,在每次执行BFS的过程中,时间复杂度为O(E),而每次更新图中的流量的时间复杂度也为O(E),因此total时间复杂度为O(E*F),其中F是最大流量。
以上就是Ford-Fulkerson算法的C++实现。如果您对网络流算法有更多的兴趣与问题,请参考其他相关博客及资料。
关键词:
Docker基础知识和命令使用入门
网络流的C++代码实现与过程讲解
每日关注!南昌大学举办潘际銮教育思想研讨会
伛偻提携往来而不绝者滁人游也翻译_伛偻提携_焦点热文
嫁入豪门?前世界首富目不转睛盯着谷爱凌,搂着爱凌合影很兴奋
绿色转型湾区“债”持续——中央结算公司2023年二季度债市研判六人谈举行
“星级酒店”旅游专列今日发车:双人大床房 24小时管家
暗黑4再次公测
当前速读:上海一商场特斯拉展车喇叭响不停 销售员束手无策 路人纷纷堵耳
华为实现自主可控的MetaERP研发:我们已经突破封锁 我们活了下来-环球速看
环球即时:德国男单全军覆没!世界冠军1:3输球,世界第六现场脱衣服换球服
双鱼座今日运势_双鱼座男生讨厌女生_今日看点
四大证券报精华摘要:4月21日
仰望U8市区上路 体型硕大:一旁70万的途锐秒变高尔夫
马斯克不止星舰发射失败 特斯拉暴跌近10%:市值一夜蒸发3780亿元
全球视讯!剧情够毁灭!漫威宣布《复仇5》 明年开拍:国人不爱看 不符合文化观?
世界速递!2399元起加量还减价!小米平板6 Pro今日首销:升级神U骁龙8+
探访风波中的宝马mini展台
读SQL进阶教程笔记13_SQL中的分组和层级
笔趣阁校花的贴身高手小说_笔趣阁校花的贴身高手 每日简讯
超预期!世界打开中国经济“一季报”的正确姿势
北京军地检察机关推动监管部门加强保护管理
【环球新要闻】提前感知这次“五一”假期有多火:酒店预订量涨4倍、淄博订单涨20倍
KMeans_世界观热点
全球热点!Rust编程语言入门之Rust的面向对象编程特性
【Visual Leak Detector】源码下载 世界热讯
【全球报资讯】手机系统相册在哪里(手机系统相册在哪里打开)
世界今日讯!邓紫棋的祝福
4nm Zen4!宏碁全球抢发AMD锐龙9 7940H笔记本:配个RTX 4050 焦点快报
环球热文:苹果最强对手来了!小米13 Ultra首销:5999元买安卓影像之王
马斯克准备了7年的超级火箭炸了!但员工们乐得开起了香槟
世界百事通!迪士尼真人版《小美人鱼》新写真出炉:黑美人鱼海底双手托腮
五一民宿预订现涨价退单潮 房东找奇葩理由:破产不干了
ST时万(600241)2023年一季报财务简析:净利润减48.39%
当前最新:用户侧100千瓦时锌溴液流电池系统并网运行
全球观天下!上市险企财险2022年年报:综合费用率均有下降
一带一路、中字头个股午后反弹 西藏天路反包涨停
女生戒指戴法的含义图解_女生戒指戴法的含义|速读
农村厕所要怎么改造
世界今热点:三只小山羊创始人杨玉勇:专业、专注、全力以赴,成就羊绒大衣专家
已致270人死亡,2600余人受伤!中国驻苏丹使馆:请尽快登记! 今日播报
21世纪仅有7次!罕见日全环食今天来了|最新
天天看点:LCD面板行业复苏,产能向大陆集中,TCL科技等龙头企业有望受益
世界实时:次新股回调多少可以买入?如何买入?
jrsnba直播吧 a直播吧 焦点精选
世界读书日|重读雷锋日记 弘扬雷锋精神 天天新视野
vivo X Fold2:更易用的折叠屏旗舰 “减重不减质”-环球热讯
亮相第十三届中国轻工业信息化大会,360数字中枢引瞩目-全球热门
一季度我国经济发展实现良好开局_全球微动态
霍勒迪:赛前告诉字母哥会为他拿下G2 我们大家都支持他-精选
记录.Net部署Docker-v指令使用
关于Java中对象的向上转型和向下转型
启明星辰(002439.SZ):预计一季度净亏损6300万元至6800万元 同比减亏
每日热点:双喜!巴萨第一次正式报价梅西:砸锅卖铁筹2亿,第8座金球在招手
微头条丨马斯克SpaceX星舰发射失败:惨烈爆炸 当空“放烟花”
人类最强火箭星舰爆炸 马斯克失落 SpaceX回应:祝贺团队完成首次飞行测试
台北101大楼遭雷击罕见瞬间曝光:紫光乍现照亮夜空_天天要闻
《灌篮高手》热映 你为青春补票吗?80/90后熬夜冲向电影院
马斯克SpaceX星舰发射失败 爆炸瞬间动图:一团火球灰飞烟灭 世界快报
全球今热点:金基集团总经理徐谱曾在龙湖任职多年 跳槽频繁但职位挺稳定
[游戏] EasyGame C++
今日最新!【前端可视化】SVG 学习知识点
平稳运行、动能积蓄——透视首季工业经济数据
和刘云天直播与前妻合体,拿郭德纲题字扇亮相,曹云金是懂流量的-热推荐
重庆公积金缴费基数2023多少 缴存基数上限如何计算?
比RTX 4080小一半!RTX 4000 SFF半高卡开卖:万元价格、功耗仅70瓦
资讯推荐:不玩不行?厂商力挺:黑人女主的游戏正越来越多
5999元起!vivo发布上下折叠屏手机X Flip:魔幻3寸外屏、妹纸最爱
聚焦水利,河南再设百亿产业基金 全球独家
微信小程序学习笔记 播报
无凭证条件下的权限获取
快讯:C++ 结构体对齐
债市日报:4月20日
vivo X Flip登场:航空级铝合金中框 3英寸超大外屏
全球首个12.1寸7:5大屏 vivo Pad2屏幕大升级:拒绝低成本_全球观点
【世界独家】最强火箭SpaceX星舰今晚重新发射!现场大雾弥漫:又要延期?
快播:首发2399元起 vivo Pad2平板发布:娱乐与生产力双旗舰
时隔10年 新一代PC硬件杀手:《孤岛危机4》来了
马布里发微博:篮球之神是公平的
安装到c盘和d盘的区别 c盘和d盘的区别
业绩亏损的股票有可能上涨吗?股票的涨跌原理
ASP.NET Core MVC 从入门到精通之wwwroot和客户端库 世界短讯
海思Hi35xx uboot启动分析总结
上平台! 车联网智能化晋级高段位!
PHP 教程_编程入门自学教程_菜鸟教程-免费教程分享-每日快讯
每日热点:中汽协:3月乘用车产销分别完成214.9万辆和201.7万辆 同比分别增长14.3%和8.2%
铜川市气象台发布沙尘暴黄色预警【Ⅲ级/较重】
环球热头条丨最强折叠屏!vivo X Fold2亮相:7项参数全球唯一
《古龙风云录》等86款游戏过审:4月国产游戏版号公布
《灌篮高手》周边卖断货 官方急挂公告:真没货了 亲们!_世界头条
全球最资讯丨科大讯飞Q1营收28.88亿元 即将发布认知大模型
vivo X Fold2外观正式揭晓:双材质拼接设计独特 环球热资讯
世界微速讯:【金融街发布】人民银行:加快新型信息基础设施建设 加快金融数字化转型
快看点丨后悔没早学 两招轻松搞定打印机堵头难题
全球微动态丨冰淇淋只给外国人道歉后 探访风波中的宝马mini展台:有男子免费派发甜筒
上海车展三星推第6代方形电池 UP主吐槽“闲人免进”:护我安全
天天时讯:家用强力灭蚊!雅格充电电蚊拍9.9元起抄底
巨幕大于想象!vivo X Fold2/X Flip折叠屏未发先火:超50万人预约
【天天速看料】2.56万方!南通这里,即将拆除!
环球微头条丨【0基础学爬虫】爬虫基础之自动化工具 Selenium 的使用