zoukankan      html  css  js  c++  java
  • Luogu P2269 [HNOI2002]高质量的数据传输

    这题给大家提供一下思路~ (为不想贴代码找借口)

    声明:两个思路都是正确的,并且都AC了。(逃)


    总体布局

    求传输失败率(1-prod(1-p_{i}))最小就是求 传输成功率(prod(1-p_{i}))最大。

    求一个最短路,使得传输成功率(1-失败率)最大为第一关键字,时延最小为第二关键字。

    思路1

    正如另一篇题解的思路,我们可以稍微改变一下传统的spfa:

    在松弛操作时,如果传输效率更好,则松弛传输效率该效率下对应的时延。如果传输效率一致,则只松弛该效率下对应的时延。如果传输效率更差,什么都不更新。

    这样就能保证两个关键字的次序。


    思路2(次好)

    我们可以先spfa一下传输成功率,再spfa时延。

    在spfa时延时,松弛时的判断是否更新的条件语句中加一个判断 (成功率[u]*(1-丢失率边[u][v])==成功率[v])

    也就是可以理解为,沿着传输成功率最大的边(符合第一关键字的边)来更新各个节点的时延。

    这样也可以。


    后记

    这题是我时隔了半年两次写的题目。那时是思路2,还没写对,只有10分,现在有了两个思路。不同的水平,果然有不同的感悟。算法有时候,还真的是一门值得研究的艺术。

  • 相关阅读:
    前端基础之CSS
    前端基础之HTML(三)
    前端基础之HTML(二)
    前端基础之HTML(一)
    面向对象总结
    内置函数总结
    函数部分总结
    文件操作总结
    基础数据类型总结
    python基础知识总结
  • 原文地址:https://www.cnblogs.com/Algebra-hy/p/10981916.html
Copyright © 2011-2022 走看看