主要参考资料:数据结构(C语言版)严蔚敏 ,http://blog.chinaunix.net/uid-25324849-id-2182922.html 代码测试通过. package 图的建立与实现; import java.util.*; public class MGraph { final int MAXVEX = 100; final int INFINITY = 65535; int[] vexs = new int[MAXVEX]; //顶点表 int[][] arc =
prim 算法求最小生成树 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 20712 Accepted Submission(s): 9213 Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不
首先在介绍这个算法之前我们要之明确一下什么是最小生成树的概念: 由 V 中的全部 n 个顶点和 E 中 n−1 条边构成的无向连通子图被称为 G 的一棵生成树,其中边的权值之和最小的生成树被称为无向图G 的最小生成树. 换言之,我们不能生成环且要让边权值和最小! 这里先介绍一个Prim算法: Prim算法的思想和朴素版Dijkstra算法很像,我们也是去找当前集合外(这个集合就是我们的最小生成树)的离集合最近的点,我们用dist来表示 然后找到这个离集合最近的点之后,将这个的边权加入res,我们
//稀疏图 #include <cstring> #include <iostream> #include <algorithm> using namespace std; , INF = 0x3f3f3f3f; int n, m; int g[N][N]; int dist[N]; bool st[N]; int prim() { memset(dist, 0x3f, sizeof dist);//先初始化为正无穷 ;//权重 ; i < n; i ++ ) {