正难则反思想
题目:NOIP2014 Day2 T2 寻找道路
http://www.cnblogs.com/TheRoadToTheGold/p/6739849.html
题意:
在图中找一条从起点到终点的路径,该路径满足以下条件:
1 .路径上的所有点的出边所指向的点都直接或间接与终点连通。
2 .在满足条件1 的情况下使路径最短。
题虽然是水题,但思想重要
这道题卡在如何筛选出 “出边所指向的点都直接或间接与终点连通”的点
2种方向:
1、预处理所有点的联通情况,枚举判断
floyed O(n³),可过60%
2、单源最短路径的思路
但一般的dijkstra、spfa 跑一遍,可以直接判断与起点是否联通
若要判断与终点是否联通,按算法的思路的话
找到一条路径,标记这些点,再在没标记的点中再跑一遍算法……
为什么 他可以直接判断与起点是否联通?
因为他从起点开始搜索,
若 从起点可以遍历到终点
那么沿着 反向边 就可以从终点遍历到起点
所以从 终点开始 跑spfa就好了