图论算法
图论是 CSP-J/S 复赛的高频考点。共 21 个模板。
← 返回模板库8.1邻接矩阵存图
二维数组存图,适合稠密图
8.2邻接表存图
vector 存图,适合稀疏图
8.3链式前向星存图
数组模拟链表,竞赛主流存图方式
8.4Dijkstra 算法
贪心求单源最短路,适用于非负权图
8.5SPFA 算法
队列优化的 Bellman-Ford,可处理负权边
8.6Floyd 算法
多源最短路,三重循环枚举中转点
8.7Prim 算法
贪心求最小生成树,适合稠密图
8.8Kruskal 算法
边排序 + 并查集,适合稀疏图
8.9并查集 - 基础
路径压缩 + 按秩合并
8.10并查集 - 带权
维护节点到根的距离,处理偏移关系
8.11拓扑排序
判断有向无环图,确定任务执行顺序
8.12Tarjan - 强连通分量
一次 DFS 找出所有强连通分量
8.13Tarjan - 割点
找无向图中的割点(删除后图不连通的点)
8.14Tarjan - 桥
找无向图中的桥(删除后图不连通的边)
8.15DFS 序
记录 DFS 进出时间,将子树转化为区间
8.16树的重心
删除后最大子树最小的节点
8.17树的直径
两次 DFS 或树形 DP 求最长路径
8.18二分图判定
染色法判断图是否为二分图
8.19匈牙利算法
二分图最大匹配
8.20最小环
Floyd 变形,枚举中转点时同时更新答案
8.21负环检测
SPFA 判断图中是否存在负权环