const int maxn = 500 + 10;
const int INF = 0x3fffffff;
//prim
bool vis[maxn] = { false };
int g[maxn][maxn], d[maxn], n;
int prim() {
//1
fill(d, d + maxn, INF);
d[0] = 0;//默认起点是0号
int sum_weight = 0;
//2
for (int i = 0; i < n; i++) {
int u = -1, minn = INF;
for(int j=0;j<n;j++)
if (vis[j] == false && d[j] < minn) {
u = j;
minn = d[j];
}
if (u == -1)return;
//3
vis[u] = true;
sum_weight += d[u];
for (int v = 0; v < n; v++)
if (vis[v] == false && g[u]