找连通块、判断是否有环等。部分题目做法不止一种。
思维扩展:
求最短路等。
注:关于网格图的 DFS 和 BFS,请看 网格图题单。
把拓扑排序想象成一个黑盒,给它一堆杂乱的先修课约束,它会给你一个井井有条的课程学习安排。
这一种在图上的「排序」,可以把杂乱的点排成一排。前提条件是图中无环,从而保证每条边都是从排在前面的点,指向排在后面的点。即对于任意有向边 x→y,x 一定在 y 之前。
学习拓扑排序前,请先完成 1557. 可以到达所有点的最少点数目,有助于理解拓扑排序。
分层图最短路:
Bitset 优化 Floyd
涉及到 Kruskal 算法和 Prim 算法。前者一般用于稀疏图,后者一般用于稠密图。
思维扩展
涉及到 Hierholzer 算法。
涉及到 Tarjan 算法。
关于二分图的最大匹配,见下面网络流的题目。其中标有「一对一」的题目也可以用带权二分图最大匹配做。
由于有其他做法(比如状压 DP),难度分仅供参考。
模拟费用流
见 链表、树、回溯 题单的第三章节。
如果你发现有题目可以补充进来,欢迎评论反馈。