单选题 11个城市之间的公路交通网络及公路长度如图所示。从城市s到城市t的最短距离为{{U}} {{U}} 66 {{/U}} {{/U}};现引入“转弯”的定义如下:在从s旅行到t的过程中,每从一条公路转到另一条公路上时称进行了一次转弯,从城市s到城市t最少经过{{U}} {{U}} 67 {{/U}} {{/U}}次转弯。
单选题
  • A.92
  • B.82
  • C.81
  • D.73
【正确答案】 C
【答案解析】
单选题
  • A.3
  • B.4
  • C.5
  • D.6
【正确答案】 A
【答案解析】[解析] 目前,求单源最短路径主要使用迪杰斯特拉(Dijkstra)提出的一种按路径长度递增顺序产生各顶点最短路径的算法。若按长度递增的次序生成从源点s到其他顶点的最短路径,则当前正在生成的最短路径上除终点以外,其余顶点的最短路径均己生成(将源点的最短路径看做是已生成的源点到其自身的长度为0的路径)。
迪杰斯特拉算法的基本思想是:设S为最短距离已确定的顶点集(看做红点集),V-S是最短距离尚未确定的顶点集(看做蓝点集)。
(1)初始化:初始化时,只有源点s的最短距离是已知的(SD(s)=0),故红点集S={s},蓝点集为V-{s}。
(2)重复以下工作,按路径长度递增次序产生各顶点最短路径:在当前蓝点集中选择一个距离最小的蓝点来扩充红点集,以保证算法按路径长度递增的次序产生各顶点的最短路径。当蓝点集中仅剩下最短距离为∞的蓝点,或者所有蓝点已扩充到红点集时,s到所有顶点的最短路径就求出来了。
为了叙述方便,我们把图中的中间节点进行编号,如下图所示。
求最短路径的过程如下表所示。
[*]
求最短路径的过程
红点集 D[1] D[2] D[3] D[4] D[5] D[6] D[7] D[8] D[9] D[t]
{s} 25 21
{s,2) 25 41 46
{s,2,1} 41 46 36 31
{s,2,1,8) 41 46 36 64
{s,2,1,8,7} 41 46 71 64
{s,2,1,8,7,3} 46 61 64
{s,2,1,8,7,3,4} 61 91 64
{s,2,1,8,7,3,4,5) 69 64 82
{s,2,1,8,7,3,4,5,9} 69 82
{s,2,1,8,7,3,4,5,9,6} 81
{s,2,1,8,7,3,4,5,9,6,t}
因此,从s到t的最短路径长度为81,路径为s→2→3→5→6→t。根据转弯的定义,其实质就是求从S出发到t,中间至少要经过几个节点,显然,s→2→4→6→t转弯最少,因此最少转弯数为3(注意,试题并没有要求走最短路径)。
单选题 假设系统中有m个同类的互斥资源,当n个进程共享这m个互斥资源时,每个进程的最大需求数是w。在下列情况中,系统可能会产生死锁的是{{U}} {{U}} {{/U}} {{/U}}。
  • A.m=4,n=3,w=2
  • B.m=4,n=2,w=3
  • C.m=5,n=2,w=3
  • D.m=5,n=3,w=2
【正确答案】 B
【答案解析】[解析] 设系统中有R类资源m个,由n个进程互斥使用,若每个进程对R资源的最大需求为w。则只要它们之间满足如下关系,就不会发生死锁。 [*] 将试题中的4种情况分别代入上述公式,显然,只有B不满足。