• 过桥问题


    背景:在一个伸手不见五指的黑夜里,有一群人过一独木桥,只有一盏灯,每次只能过两人,于是没过去两个必须回来一个人。

    分析:

    N:总人数,按所花时间从小到大排序:A<B<......<Y<Z,分别对应所用时间a,b......y,z。

    分情况讨论:

    假设数据已经按以上规则排好序。

    N=1时,taketime=a;

            A  ->  a;

    N=2时,taketime=b;

            A,B  ->  b;

    N=3时,taketime=a+b+c;

            A,C  ->  c;

            A  <-  a;

            A,B  ->  b;

    N=>4时,

           

    有两种模式:

            模式一:taketime=2*a+y+z;

            A,Z  ->  z;

            A  <-  a;

            A,Y  ->  y;

            A  <-  a;

           

            模式二:taketime=a+2*b+z;

            A,B  ->  b;

            A  <-  a;

            Y,Z  ->  z;

            B  <-  b;

           

    当a+y < 2*b 时用模式一;

    当a+y > 2*b 时用模式二;

    当a+y = 2*b 时都可用。

    根据以上规则,最慢的一组先过河,A和B充当提灯角色(可以这么认为,但B不一定每次都参加)直到最后。

  • 相关阅读:
    PythonStudy——格式化输入小练习
    PythonStudy——运算符优先级 Operator precedence
    PythonStudy——逻辑运算符 Logical Operators
    ExtJS动态创建组件
    常见报表的JS代码
    sqlserver学习
    读写分离与锁分离
    oracle链接原理
    读java并发编程笔记
    日志机制在编程中的作用
  • 原文地址:https://www.cnblogs.com/submarinex/p/1941237.html
Copyright © 2020-2023  润新知