求入度为0的点到出度为0的点的最长路
题目中已经说明了没有环,所以是DAG图,可以拓扑排序+DP解决,复杂度为O(E)
一开始想DFS的,TLE,究其原因,图中的交叉链可能比较多,导致有些边被多次重复搜索
另外,进行拓扑排序时,只有当一个点的入度减为0时才会将它入队列,也就是说当它的前驱节点都访问过以后才会访问它,这也保证了可以用DP解决
代码:
求入度为0的点到出度为0的点的最长路
题目中已经说明了没有环,所以是DAG图,可以拓扑排序+DP解决,复杂度为O(E)
一开始想DFS的,TLE,究其原因,图中的交叉链可能比较多,导致有些边被多次重复搜索
另外,进行拓扑排序时,只有当一个点的入度减为0时才会将它入队列,也就是说当它的前驱节点都访问过以后才会访问它,这也保证了可以用DP解决
代码: