zoukankan      html  css  js  c++  java
  • CF196E Opening Portals

    对于任意传送门集合,无论从哪个门开始遍历最小时间均相同,那么以传送门之间的最短路为边跑最小生成树,再加上 (1) 号点到最近传送门即为所求。

    将原图的每条边 ((u,v)) 替换为分别距离 (u,v) 最近的两个传送门 (U,V) 作为端点,权值为 (dis(U,u)+w_{u,v}+dis(v,V)) 的新边,这部分可以用多起点最短路的 Dijkstra 解决。考虑这个做法的正确性。

    假设方案为黑色路径加红色路径,黑色路径上的原边没有任意一条对应到黑色路径。

    黑色路径上以 (a) 为一个端点的那条边对应到了绿色路径,以 (b) 为一个端点的那条边对应到了蓝色路径。

    将黑色路径替换为绿色路径,在同样保证联通的情况下,答案不会变劣

    这样边数就降到了 (m),完全可以接受。

  • 相关阅读:
    C语言I博客作业04
    C语言I博客作业03
    C语言1博客作业02
    作业1
    C语言||作业01
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
    笔记本
  • 原文地址:https://www.cnblogs.com/May-2nd/p/15014233.html
Copyright © 2011-2022 走看看