(数学易错题题)你试着给学校里要举办的运动会设计一个吉祥物吧。

【这个概率问题的概率怎么算?有㈣个盒子,每个盒子里都装着一个红球和一个白球,闭上眼睛分别在四个盒子里摸一个球,摸到一个红球的概率是多少?】

常见的最短路问题分为两类:单源最短路(从一个点到其他所有点)、多源汇最短路(任意两点)

1、在单源最短路问题中若所有的边都是非负数,使用Dijkstra算法;若存在负權边那么可以使用Bellman-Ford算法,SPFA是对前者优化关于算法原理的介绍有很多,这里不再详述

(1)朴素Dijkstra算法,时间复杂度O(n ^ 2)通常在稠密图的时候使用(边的数量级大概为点的数量级的平方),使用邻接矩阵存图可以根据题目要求的时间复杂度来选择使用哪种方法。

示例代码:提供n个点m条边的有向边,存在自环和重边计算一点到另一点的最短距离(题目出自AcWing)

 
bool st[N]; //记录每一个点是否被用来执行过松弛操作
 
 
 
 st[t] = true; //表示t这個点被用来执行过松弛操作了,也表示dist[t]已经确定最小值了
 
 
 
 

(2)堆优化版的Dijkstra算法,通常稀疏图使用(边与点的数量级大概相当)用邻接表存图,时间复杂度O(mlogn)

这里使用一个小根堆优化朴素方法里面寻找最小的dist的点,使用了贪心的思想

 
 
 
 
 
 
 

我要回帖

更多关于 易错题 的文章

 

随机推荐