在一个无向图中,生成树必须包含这个图的所有顶点,不能出现环路,顶点和顶点之间必须有路,而最小生成树就是这些生成树里权值加起来最小的。
它的实现过程和Dijstra算法有些类似,基于贪心的策略,不同的是Dijstra算法找的是每次离原点最近的点,而Prim算法找的是离这颗树最小的点,而且Dijstra算法假如说求1到n的最小距离,不一定要包括所有的顶点,我只要找一条能从1通的n的路就行了,prim是要包括所有顶点的
手动模拟:
代码模板详见博客
HDU 1863 板子
在一个无向图中,生成树必须包含这个图的所有顶点,不能出现环路,顶点和顶点之间必须有路,而最小生成树就是这些生成树里权值加起来最小的。
它的实现过程和Dijstra算法有些类似,基于贪心的策略,不同的是Dijstra算法找的是每次离原点最近的点,而Prim算法找的是离这颗树最小的点,而且Dijstra算法假如说求1到n的最小距离,不一定要包括所有的顶点,我只要找一条能从1通的n的路就行了,prim是要包括所有顶点的
手动模拟:
代码模板详见博客
HDU 1863 板子