• 分层图总结


    分层图

    分层图主要就是通过将图分为几层,每层内部都有边,然后各层之间也有边,用于解决对边权进行操作且操作数少的题目。

    Example

    给一个无向图,求(1 o n)的最短路径,其中可以选择不超过(k)条边让边的边权变为一半。 (n le 50,m le 1000,k le 50)

    考虑建立(0,1,2,cdots,k)层共(k + 1)层图。定义(P(x,y))为第(y)层的点(x)。每层内部都按照原图连边,然后考虑边((u,v) in E),对于第(i)(i + 1)层((i + 1 le k)),连无向边(P(u,i) o P(v,i + 1))(P(v,i) o P(u,i + 1)),边权为(w / 2)。然后跑一遍最短路,答案为(min_{i = 0} ^ k {dis_{P(n,i)}}).

    如果用pq优化的Dijkstra实现,时间复杂度为(mathcal{O}(mk + mk log{mk}))

    Problem

    一个无向图,求(S o T)的最短路,一条路径的长度定义为路径上的边权和减去最大边权加上最小边权。

    发现其实就是(sum_{w eq w_{max},w eq w_{min}} w + 2 cdot w_{max})
    跑分层图即可。

  • 相关阅读:
    Oracle:解锁scott用户及设置密码
    js生成条形码
    返回头部效果
    密码强度
    事件委托小效果
    圆形导航效果
    进度条效果
    标题跟随效果
    随机抽人小效果
    点击创建效果
  • 原文地址:https://www.cnblogs.com/luyiming123blog/p/15183095.html
Copyright © 2020-2023  润新知