完全图的最小生成树
关键字: 贪心算法,图,最小生成树
题目描述:给定一个图,图中包括 n 个点,每个点 i 有一个权值A[i]。这个图是一个完全图,任意两点 i 和 j 之间有一条长度为 A[i]+A[j] 的无向边,问该图最小生成树所有边的长度和。
输入:第一个数为数据组数T, T≤50。
对于每组数据,首先输入一个数n,n≤100000。
接下来一行n个数,分别表示A[1],…,A[n],1≤A[i]≤10,000,000。
输出:对于每组数据,输出一行,最小生成树的边权和。
样例:
//Input
1
4
5 6 5 9
//Output
35
题解:由于该题中边的权值由所选取的点决定,故采用prim算法构建最小生成树。由题,该树每条边的权值为该边两端点权值和,根据prim算法,选取当前点集 E E E 中最小元 u u u 为起始点,记其权值为A[ u u u],不断选取当前剩余点集中的最小元 v i v_i vi,记其权值为A[ v i v_i vi],则以点