趣味数学---图论四人过桥

来源:互联网 发布:雪人企业版是什么软件 编辑:程序博客网 时间:2024/05/01 00:16
   有一天晚上,有四个人需要通过架在山谷间的危桥,任意时刻最多只能有两个人在桥上,过桥需要一盏闪光灯,这些人只有一盏闪光灯。如果单独过桥他们分别需要10、5、2、1分钟,如果两人同时过桥则所需时间是较慢者所需的时间。18分钟后,沿山谷滚滚而下的山洪将把这座桥冲毁。这四个人能及时过桥吗?不用图论知识,证明你的结论;并说明如何用图论知识获得答案。
      分析:一共有四个人,一个手电筒,如果群聚的话可以得到最优解,但群聚的意义不在于此,这是只需将群聚改善一下(分类)即可,如何分?
可根据所需时间的不同来分类,无非是按最长,和最短的来分,
按最长来分类,因为走路花费时间取决于时间长的那个,5和10 在一起,那么5和10 先过桥,或者后过桥,如果先过桥,过桥之后,5又要回来带手电,5再一次过桥,需要花20分,显然不可取,因此5和10应该后过桥。所以:
1和2先过桥,然后1回来,因为一定要保证5和10要一起过,所以5和10过桥,然后2去接1过桥,总共需要花费:2+1+10+2+2=17分;所以可以安全过桥  
     用图论:一个点表示一个状态
1    2      5     10       手电筒
有四个人                           回来送手电有3个人          有一个人                      回来送手电有2个人             完成
(1  1   1   1    1)             (1    1    1   0   1)       (1  0   0   0  0)        (0    1   0   1    1)           ( 0 0 0  0 0)
 (0   1   0   1    0)            (1    1    0   1    1)    (0   1  0 0  0)             (0   1   1   0   1) 
(0   1   1   0   0)              (1  0  1  1   1)         (0   0  1  0  0)             (0  0   1  1   1)
(0  0    1   1   0)             (0   1   1   1  1)         (0   0  0   1   0)             (1  1  0   0  1 )
(1   1   0   0   0)                                                                                       (1 0 1 0 1)
(1   0   1   0   0)                                                                                        (1  0  0   1  1)
(1  0   0    1   0)    
根据以上的状态画出图
                  
     然后只要算出(1 1 1 1 1 )到(0  0 0  0 0)的最短路即可(用Dijkstra算法);
详见http://blog.csdn.net/koudaidai/article/details/7904512                                                                                                                     

博客名:koudaidai

                                             
0 0
原创粉丝点击