美文网首页
过桥问题的贪心解法

过桥问题的贪心解法

作者: siriusing | 来源:发表于2019-03-29 16:34 被阅读0次

    过桥问题:

    黑夜,只有一只手电筒
    A过桥需要1s
    B过桥需要3s
    C过桥需要5s
    D过桥需要8s
    E过桥需要12s
    求最小过桥时间

    贪心算法:

    从最大的开始过去,最小的两个做为辅助。

    1. 假如左岸人数为2:两个人直接过去,不需要回来,代价T=A_i+A_j (j=i+1)
    2. 假如左岸人数为3:由A_i辅助,代价T=A_i+A_{i+1}+A_{i+2}
    1. 假如左岸人数大于3:将左岸最大两个人送到右岸,可以有两种方案:
    image.png

    综上,此时

    T= \begin{cases} A_i+A_j & \text{j-i<2} \\ A_i+A_{i+1}+A_{i+2} & \text{j-i<3}\\ max(2A_i+A_{j-1}+A_j,A_i+2A_{i+1}+A_j) & \text{other}\\ \end{cases}

    tips: 记得每次j-2。

    代码略。

    相关文章

      网友评论

          本文标题:过桥问题的贪心解法

          本文链接:https://www.haomeiwen.com/subject/vlfrbqtx.html