图论学习总结
前言
- 这是个人的图论学习刷题总结,个人水平有限,如果有误希望帮忙指出。这篇博客涉及一些用图论算法思想结题和例题以及相关解法和思路,所有例题和练习题本人均已ac,部分题提供ac代码地址(python),部分题不开另外时限python ac不了的会考虑提供 C++实现。
- 这篇博客所涉及到的题目包含蓝书(李煜东)图论的大部分例题,还包括牛客上的一些题目(包括少部分多校题)以及个人 X C P C XCPC XCPC训练或比赛时遇到的一些图论题,注:例题没有刻意的按难度排序,附上的题目连接以 Codeforces, NowCoder, 洛谷为主。
- 这篇博客在退役前会持续更新,目前例题还有很多题解没完善的,还有没加上例题的慢慢更新吧TAT,大概每个月重新上传一次吧,其中知识点大多以无序表的形式给出的较多,对于基本算法知识点不会的可以自己利用搜索引擎学习这些知识。
- 由于全放在一篇博客中发现过于冗长,所以拆分为多篇博客,本篇博客类似于地址汇总
一、基础知识
图的存储
- 邻接矩阵
- 二维数组 A [ i , j ] = w ( i , j ) A[i,j]= w(i,j) A[i,j]=w(i,j) , O ( n 2 ) O(n^2) O(n2)注意重边
- 邻接表(数组模拟,链式前向星)
- 表头数组 h e a d [ N ] ( 指向从某点出发的第 1 条边 ) head[N](指向从某点出发的第1条边) head[N](指向从某点出发的第1条边)
- 边集大小 t o t tot tot
- 边集数组 v e r [ M ] ver[M] ver[M] (边的出点), e d g e [ M ] edge[M] edge[M] (边权), n e x t [ M ] next[M] next[M] (指针)
- 邻接表( C C C++ v e c t o r vector vector , P y t h o n Python Python l i s t list list)
图的遍历
- 深度优先遍历
- 访问标记避免重复、时间戳( d f s dfs dfs序: d f n dfn dfn)
- 广度优先遍历
- 循环队列、优先队列
- 边权为01的图上双端队列
- 拓扑排序
- 判定有向无环图(DAG)
二、最短路
三、部分树上问题及图的联通性
四、二分图及图匹配
五、网络流初步
六、综合模型及应用(以题目总结为主)
七、树与图的一些计数问题(偏数学)
八、参考资料
1、OI Wiki
2、李煜东 《算法竞赛进阶指南》
3、邓丝雨 牛客图论专题班教案
4、
【
a
l
e
x
−
w
e
i
】
【alex-wei】
【alex−wei】网络流,二分图与图的匹配
5、2024国家集训队论文集:顶点带权的图匹配问题——柯绎思
6、2024国家集训队论文集:浅谈信息学竞赛中的线图问题——翟锦程
7、2024国家集训队论文集:浅谈图的列表着色问题——钟自厚
8、2023国家集训队论文集:综述图论中连通性及相关问题的一些处理方法——万成章
9、2023国家集训队论文集:浅谈一些二分图匹配相关问题——柯绎思