集训第八天(2017/8/7):白天刷搜索题+晚上看dijkstra算法

来源:互联网 发布:淘宝会员名是旺旺名吗 编辑:程序博客网 时间:2024/04/27 14:35

     白天就ac了两道题,依然是搜索,分别是poj3414 pots和poj3083 Children of the Candy Corn,前者是很好的bfs,后者是bfs和dfs综合运用,都觉得(题解)写的很好,专门写了两篇解题报告,有兴趣的可以看一下。

     晚上看了dijkstra算法  

       其基本思想是,设置顶点集合S并不断地作贪心选择来扩充这个集合。一个顶点属于集合S当且仅当从源点到该顶点的最短路径长度已知。

      初始时,S中仅含有源点。设u是G(包含除源点以外的所有已知点的集合)的某一个顶点,把从源点到u点且中间只经过S中顶点的路称为从源点到u的特殊路径,并用数组dist记录当前每个顶点所对应的最短特殊路径长度。Dijkstra算法每次从V(各个顶点到源点的直接距离,如不连通,则直接距离为无穷大的点的集合)-S(对应最短特殊路径长度的每个顶点的集合)中取出具有最短特殊路长度的顶点u,将u添加到S中,同时对数组dist作必要的修改。一旦S包含了所有V中顶点,dist就记录了从源到所有其它顶点之间的最短路径长度。

例如,对下图中的有向图,应用Dijkstra算法计算从源顶点1到其它顶点间最短路径的过程列在下表中。

Dijkstra算法的迭代过程:

务必理解上图!

 

原创粉丝点击