知识点回顾:最小生成树
最小生成树算法主要有Prime算法和Kruskal算法,Prime算法主要是从构造的已有的最小生成子集中不断扩充子集,在扩充子集时满足新加入的那条边要是最小的。Kruskal算法主要是从边的角度出发,每次都从待选边中选择权值最小并且不会构成环的那条边。
Prime算法
模板代码:
#include "bits/stdc++.h"
using namespace std;
//定义图中节点的数量
# define NUM 10000
//定义节点间的最大距离
# define MAX_DIS 1000000
unordered_map<string, int> str_index;
vector<vector<double>> adj(NUM, vector<double>(NUM, MAX_DIS));
int num_node = 0;
void graph_con(vector<vector<string>> edges, vector<double> values){
//节点字符转换为数字
for(int i = 0; i < edges.size(); i++){
if(str_index.find(edges[i][0]) == str_index.end()){
str_index[edges[i][0]] = num_node++;
}
if(str_index.find(edges[i][1]) == str_index.end()){