sheet:Graph

sheet:Graph

Graph #

  • luogu3916 建反向图,深度优先,练习使用 链式前向星
  • uva11175 使用邻接矩阵,题目分析较难想到。
  • uva572 深度优先查找连通分量个数。
  • uva1599 双重BFS,在最短路径前提下,找最小的序列。较难。
  • poj2488 马走遍棋盘的问题,要按字典序做DFS。
  • poj3278 同一直线上追逐问题,练习DFS的好例子。

最短路径 #

最小生成树 #

拓扑排序 #

图的连通性 #

  • bailian1144(电话网络) Tarjan算法求割点个数。
  • bailian3091(Road Construction) Tarjan算法求解双连通分量,并统计叶子节点个数。需要推导。从题意分析,从任意节点出发,都能访问到其余所有节点,因此,tarjan算法只需执行一次,得到的low数组的值即可视为双连通分量的编号。
  • bailian2553(The Bottom of a Graph) Tarjan算法求强连通分量,并输出出度为0的强连通分量的节点。 low值本身并不是用来区分不同强连通分量的。在一个图中,不同强连通分量中的顶点可能会有相同的low值,特别是当不同强连通分量之间存在指向关系时。low值不能作为强连通分量的唯一标识,因为它们只反映了顶点能够回溯到的最早时间戳,而不是顶点属于哪个强连通分量。不能以empty是否为空来判断强连通分量是否结束。
  • bailian1236(Network of Schools) Tarjan算法求强连通分量,找到出度为0及入度为0的强连通分量的节点个数。解法与bailian2553相似。