微软过桥问题的图论解法

微软的过桥问题说的是4个人在晚上过一座小桥,过桥时必须要用到手电筒,只有一枚手电筒,每次最多只可以有两人通过, 4个人的过桥速度分别为1分钟、2分钟、5分钟、10分钟,试问最少需要多长时间4人才可以全部通过小桥?

这个问题如果用图论来建模的话,就可以以4个人在桥两端的状态来作为节点来构造一个有向图,如下图所示,以已经过桥了的人的状态作为图的节点,初始时没有人过桥,所以以空表示,第一轮有两个人过桥,有6种可能的组合,(1,2)(1,5)(1,10)(2,5)(2,10)(5,10),从空的状态转换到这些状态的需要的时间分别为2,5,10,5,10,10分钟,时间就作为有向边的权值。当有两个人过桥后,需要一个人拿手电筒回去接其他人,这时有四种可能的情况,分别是1,2,5,10中的一人留在了河的对岸,(1,2)这种状态只能转换到(1)(2)两种状态,对应的边的权值分别为2,1分钟,(1,2)转换到(1)时也就是2返回了,返回需要耗时2分钟,以此类推可以建立以下的图论模型。
要求出最少需要多长时间4人全部通过小桥实际上就是在图中求出(空)节点到(1,2,5,10)节点间的最短路径。
根据Dijkstra最短路径算法很容易求出其最短路径,如图中的粗线所示。
这样总时间为2+1+10+2+2=17分钟
所以能够活学图论的话,这类智力问题就变成了图论的入门级的问题。

微软过桥问题的图论解法相关推荐

  1. 过桥问题——图论解法

    微软过桥问题的图论解法 微软的过桥问题说的是4个人在晚上过一座小桥,过桥时必须要用到手电筒,只有一枚手电筒,每次最多只可以有两人通过, 4个人的过桥速度分别为1分钟.2分钟.5分钟.10分钟,试问最少 ...

  2. 微软过桥问题Dijkstra/倒水问题

    微软过桥问题 微软的过桥问题:4个人在晚上过一座小桥,过桥时必须要用到手电筒,只有一枚手电筒,每次最多只可以有两人通过, 4个人的过桥速度分别为1分钟.2分钟.5分钟.10分钟,试问最少需要多长时间4 ...

  3. 一道微软面试题的Java解法

    问题:你有4瓶药.每粒药丸的重量是固定的,不过其中有一瓶药受到了污染,药丸的重量发生了变化,每个药丸增加了一点重量.你怎样一下子测出哪瓶药是遭到污染的呢? Java代码: 代码 package cn. ...

  4. java面试题 12个小球_微软面试题的终极解法!关于12个小球的问题!

    这个题应该还有很多条件: 1.球的重量范围(不能超过天平的最高称量范围) 2.球的重量精确度(如精确到0.01g还是0.1g,还是0g) 3.天平的感量 4.环境的因素:至少无风,水平的台面 5.如果 ...

  5. zoj1134 Strategic Game(DP/图论)

    /*  简单的树形DP:利用搜索正向求解.       0的孩子必须是1,1的孩子任意,取最小的. */ View Code 1 #include <stdio.h> 2 #include ...

  6. Dijkstra算法 ——四人过桥

    有一天晚上,有四个人需要通过架在山谷间的危桥,任意时刻最多只能有两个人在桥上,过桥需要一盏闪光灯,这些人只有一盏闪光灯.如果单独过桥他们分别需要10.5.2.1分钟,如果两人同时过桥则所需时间是较慢者 ...

  7. 测试驱动需求分析--需求文档评审实例

    相关文章链接如下: 微软过桥问题与测试人员素养 等价类分法 新解 测试用例设计中的NP难题 C/C++代码检视实例 90%程序员写不出无BUG的二分查找程序?                  需求文 ...

  8. 第十二届蓝桥杯 2021年4月 省赛 第一场 C/C++ B组 题解

    本题解为非官方题解,可能存在包括但不限于下列问题 答案错误 时间复杂度太高,无法在规定时间内得出结果 填空题答案速览 67108864 3181 40257 2430 10266837 目录 填空题 ...

  9. 运筹学笔记 图与网络分析

    文章目录 图的基本概念与基本定理 树和最小生成树 最短路问题 网络系统最大流问题 网络系统最小费用最大流问题 中国邮递员问题 图的基本概念与基本定理 一 . 图的基本概念 1 . 无向图与有向图 2 ...

最新文章

  1. Zabbix 3.0 从入门到精通(zabbix使用详解)
  2. ZeroCopyLiteralByteString cannot access superclass
  3. linux将ipv6地址改成ipv4,虚拟机ip地址从ipv6改为ipv4相关问题
  4. 数据库-MySQL-数据库和表
  5. Hadoop Hive概念学习系列之HiveQL编译基础(十)
  6. js es6 map 与 原生对象区别
  7. Java 设计模式 Builder 模式 链式编程
  8. QtcpSocket readyRead 粘包解法
  9. ERR Slot 741 is already busy (Redis::CommandError)
  10. android 京东平板布局,京东商城上线Android Pad客户端 完美布局移动终端
  11. Programming in lua 中文版
  12. FMI飞马网 | AI人工智能:54份行业重磅报告汇总(附下载)
  13. 关于RK3288开发板的学习(1)
  14. ArcGIS三大文件格式解析
  15. 貝塞爾 Layer 入門指南
  16. HDR的个人理解FAQ
  17. 免费获取ADS1299的AD原理图和封装!
  18. SOC、SOPC、MPSOC、RFSOC、SDSOC的概念及区别
  19. 初学ue4#2 制作3d视角人物part2
  20. windowsserver2008r2可以装什么模拟器_装B冷知识 | 小孔镜为什么可以提高视力?

热门文章

  1. C# Math类的常用方法
  2. 华为苹果两家独霸中国高端手机市场,4000元以上份额合计近九成
  3. vue---uedito---135
  4. 读《谨言慎行的力量 - 向南怀瑾学律己》
  5. 2021Java期末考选择判断题复习
  6. 如何下载网站中的blob:https:// 视频
  7. 微信小程序 页面路由 实现页面切换
  8. [知识图谱] 4.1-知识图谱在金融领域中的应用实践
  9. android 防录屏 sdk,如何使用DRM-X4.0保护Zoom Web SDK?(Zoom会议直播防录屏)
  10. 人间不值得计算机谱子,黄诗扶《人间不值得》简谱