正难则反思想

题目:NOIP2014 Day2 T2 寻找道路

http://www.cnblogs.com/TheRoadToTheGold/p/6739849.html

题意:

在图中找一条从起点到终点的路径,该路径满足以下条件:

1 .路径上的所有点的出边所指向的点都直接或间接与终点连通。

2 .在满足条件1 的情况下使路径最短。

题虽然是水题,但思想重要

这道题卡在如何筛选出 “出边所指向的点都直接或间接与终点连通”的点

2种方向:

1、预处理所有点的联通情况,枚举判断

   floyed O(n³),可过60%

2、单源最短路径的思路

   但一般的dijkstra、spfa 跑一遍,可以直接判断与起点是否联通

   若要判断与终点是否联通,按算法的思路的话

   找到一条路径,标记这些点,再在没标记的点中再跑一遍算法……

为什么 他可以直接判断与起点是否联通?

因为他从起点开始搜索,

若 从起点可以遍历到终点

那么沿着 反向边 就可以从终点遍历到起点

所以从 终点开始 跑spfa就好了

   

原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/6739917.html