图论入门题单
从图的存储、DFS/BFS 和连通性开始,逐步练习并查集、最短路、拓扑排序、最小生成树与强连通分量。
图论入门题单
图论入门的难点通常是建图,而不是背某个模板。每道题先明确顶点、边、方向和边权,再判断题目问的是连通性、最短路、依赖关系还是连通代价。
一、图的存储与遍历
先掌握邻接表、访问标记和 DFS/BFS 顺序。网格图可以看成特殊的隐式图。
- luogu P1451洛谷原题
- luogu P1141洛谷原题
- codeforces 20C未收录
二、连通性与并查集
静态连通块可以 DFS/BFS,边不断加入的连通性则适合并查集。P2024 作为带权并查集挑战题,放在这一节最后。
- hdu 1213未收录
- · P1551 亲戚
三、最短路
无权图先用 BFS;非负边权使用 Dijkstra。重点是理解“松弛”在维护什么不变量。
- hdu 2544未收录
- luogu P3371洛谷原题
四、拓扑排序与 DAG
入度为零的点代表当前没有未完成的前置依赖。除了排序,还要练习在 DAG 上做最长路或计数 DP。
五、最小生成树与二分图
Kruskal 的核心是按边权从小到大尝试合并;二分图染色的核心是判断相邻点能否使用不同颜色。
六、强连通分量挑战
强连通分量是图论入门的收尾内容。先理解 DFS 时间戳和反图,再学习 Tarjan 或 Kosaraju。
- hdu 1269未收录
过关标准
text
能根据题意写出顶点、边、方向和边权:
能判断 BFS、Dijkstra、并查集、拓扑排序和 Kruskal 的适用条件:
能说明最短路松弛或并查集合并为什么不会破坏已有结论: