难度: 2.5
分析:本题要求无向图中一个源节点到一个目的节点的最短路径,自然地想到Dijkstra的单源最短路径算法。所不同的是每个节点有个颜色,蓝的或紫的交替出现,只有一条边的两个端点颜色相同时才能通过。那么这个条件会带来什么影响呢?显然提前到达中间某个节点,不会使得最后到达目的的时间更晚。因此符合贪心的条件。这里需要注意的问题是,计算一个节点到另一个节点的时间时需要加上等待时间,而不仅仅是花费在路上的时间。
等待时间的计算:根据当前时间及初始状态算出节点当前状态,再根据节点颜色变化规律算出等待时间。
算法依然沿用Dijkstra,在更新节点最短路径(即最短时间)时,加上上述等待时间。
SGU 103 Traffic Lights
最新推荐文章于 2024-09-14 22:25:23 发布