有N个处理器构成的计算系统,需要进行消息传递,处理器;
传递信息给自己不需要时间,处理器i与处理器:之间相互传递信息的时间是一样的,不同处理器之间传递信息所需要的时间由一个矩阵的下三角给出。若矩阵对应位置为x,则说明相应的两个处理器之间无法传递信息。求从第一个处理器传递信息到其他所有处理器最少需要多少时间。
输入:输入包含多个测试数据,每个测试数据的第一行给出网中的处理器个数N,接下来给出 N-1行,第i行有i-1个整数,
分别表示第i个处理器与第1个、第2个、……、第i-1个处理器进行消息传递的时间,其中x表示相应的两个处理器无法传递消息。
,输出:对每一组测试数据,输出一个整数,表示第一个处理器传递信息到其他所有处理器最少需要多少时间。
1、要求使用 Dijkstra 算法。2、输入与输出必须严格按照题目给定格式,在线提交,只有提交结果返回 Accept才算正
确完成。
点击右侧采纳即可:
Dijkstra算法是一种图论算法,用于解决最短路径问题。它可以找到一张图中从源点到其他所有顶点的最短路径。在处理消息传递问题时,每个处理器都可以看作一个顶点,消息传递的时间可以看作两个顶点之间的距离。因此,我们可以使用Dijkstra算法求出第一个处理器到其他所有处理器的最短路径。
算法的步骤如下:
初始化:以第一个处理器为源点,记录源点到每个顶点的距离,并将所有顶点放入未确定集合。
选择最近的顶点:从未确定集合中选择与源点距离最近的顶点,并将其加入确定集合。
更新距离:更新从源点到其他顶点的距离,如果经过当前顶点到达其他顶点的距离更短,则更新。
重复步骤2和3,直到所有顶点都加入确定集合。
最终,确定集合中的最后一个顶点的距离即为源点到其他所有顶点的最短路径。