zoukankan      html  css  js  c++  java
  • noip2014-day2-t2

      题意:在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件:

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

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

        注意:图G 中可能存在重边和自环,题目保证终点没有出边。

        请你输出符合条件的路径的长度

      一眼看上去不那么好想。。。这里反着考虑,对于条件2,由于每条边长度为1,而且数据在可承受范围内,所以考虑bfs算法。那对于条件一,我们反向思考,在读入的时候顺便存一下每条边的反向边,反向对图进行一次bfs,找出不能直接或间接到达终点的点,把这些不能直接或者间接到达终点的点打上删除标记。(这里可以对能到达的点进行标记,未被标记的点即为删除的点)再检查一下,如果某点有一条出边指向已经被删除的点,那么这个点也将被删除。(注意这里根据题意,新被删除的点只能是从第一次被删除的点得到的,新被删除的点不需进行扩展。因为和它们可以直接或间接到达终点,和它们相连的边也可以。)

      总结:这个题最重要的就是要学会从限制条件入手,想办法将限制条件加入到求最短路的过程中去。此外,应用到的比较重要的思想就是倒推。

    玲珑骰子安红豆,入骨相思知不知。
  • 相关阅读:
    UML学习笔记2
    UML学习笔记1
    IOS 删除git中的submodules 以sourceTree为例
    进入MySql小黑框的方法
    v-cloak v-text v-html
    构建一个vue实例
    SQL server 查询某个值在那张表那个字段
    centos镜像下载
    win10系统升级后mysql找不到服务及数据消失问题
    Visual Studio 2017设置版权的方法
  • 原文地址:https://www.cnblogs.com/hyl2000/p/5750277.html
Copyright © 2011-2022 走看看