图论问题总结

本文总结了图论中的核心问题,包括最短路(迪杰斯特拉、弗洛伊德、SPFA算法)、最小生成树(克鲁斯卡尔、Prim算法)、树链剖分及其在求解LCA中的应用、二分图的最大匹配与判断,以及图的连通性问题(割点、割边、双连通分量、强连通分量)。内容详尽,适用于算法学习和复习。
摘要由CSDN通过智能技术生成

一,最短路问题,
(一)迪杰斯特拉优先队列优化nlogn,注意要把编号和距离开结构体压入队列中,要把建反向边的思想牢记在脑子里;不能解决负环。
(二)弗洛伊德算法,对于500以内的数据可以直接用它暴力求解,还可以判断连通性问题,n三方。
(三)spfa,尽量用弗洛伊德替代,大佬都这么说,我也不知道为什么,可以解决负环问题,入队3*n时可以结束。
二,最小生成树,
(一)克鲁斯卡尔算法(边集储存)和prim算法(邻接矩阵储存)。
(二)倍增算法求LCA,并维护最值,dfs完成;(同时复习。RMQ求区间最值)。
三,树链剖分,
(一)dfs1,求出size(包括自己),找到自己的重儿子;
(二)dfs2,先对重儿子进行编号,记录新编号和原编号的关系,记录每一个节点的top值;
(三)用线段树位置区间,记得数组要开到原来的四倍!!。
(四)记得访问线段树的时候,访问的是新的编号。
(五)边权下放的情况,当top相等的时候,编号较小的那个点不算(因为记录的上一条边)。
(六)用剖分求LCA。
(七)每一条重链编

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值