从A点开始到B点通过最短的路一共有多少条
2016-07-29 00:00
225 查看
如果P点和Q点发生事故,不能通行, 有多少条?
正常情况: 从A到B最短要走6次向右,3次向上,一共9次。这9次中选取3次向上的,其余是向右的,每种选法对应一条路。因此一共有C(9,3)=9!/(3!6!)=84种 P,Q发生事故: 设P下面的点为C,P上面的点为D。 从A到C最短要走2右1上,因此共有C(3,1)=3种。 从D到B最短要走4右1上,因此共有C(5,1)=5种。 因此,从A到B经过P的路径一共有3*5=15种。 类似地: 设Q左边的点为E,Q右边的点为F。 从A到E最短要走3右2上,因此共有C(5,2)=10种。 从F到B最短要走2右1上,因此共有C(3,1)=3种。 因此,从A到B经过Q的路径一共有3*10=30种。 接着再看: 从A到C共有C(3,1)=3种。 从D到E最短要走1右0上,因此共有1种。 从F到B最短要走2右1上,因此共有C(3,1)=3种。 因此,从A到B既经过P又Q的路径一共有3*1*3=9种。 于是,当PQ发生事故时总的路径条数为原先总路径条数减去经过P的条数,再减去经过Q的条数,再加上PQ都经过的条数(因为他们被减了两次)。 就是84-15-30+9=48条
相关文章推荐
- dbm数据库源代码分析(5):gdbmopen.c和gdbmclose.c
- 排序算法的实现
- Python中的高级设计模式
- 深入探索REST(2):理解本真的REST架构风格
- 服务器设计系列:状态机
- 面向切面编程(3):AOP实现机制
- iptables
- zlib库剖析(3):使用示例zpipe.c
- JackZhou的负责任书评:C++ Primer中文版(第4版)
- 控制反转与依赖注入模式
- 深入探索REST(1):如何设计好的RESTful API?
- Java集合框架总结
- Linux进程调度(2):CFS调度操作
- 深入理解Java注解(1):基础详解
- 成为Java GC专家(3):如何优化Java垃圾回收机制
- dbm数据库源代码分析(8):hash.c和findkey.c
- Linux Socket编程
- JVM调优总结(2):调优方法
- 位图数据结构的运用
- 架构腐化之谜