Prim 算法
const int INF=0x3f3f3f3f;const int MAXN=110;bool vis[MAXN];int lowc[MAXN];int Prim(int cost[][MAXN],int n){ int ans=0 memset(vis,false,sizeof(vis)); vis[0]=true; for(int i=1;ilowc[j]) { minc=lowc[j]; p=j; } if(minc==INF) return -1;//原图不联通 ans+=minc; vis[p]=true; for(int j=0;j cost[p][j]) lowc[j]=cost[p][j]; } return ans;}
Kruskal 算法
const int INF=0x3f3f3f3f;const int MAXN=110;const int MAXM=10000;int F[MAXN];struct Edge{ int u,v,w;}edge[MAXM];int tol;void addedge(int u,int v,int w){ edge[tol].u=u; edge[tol].v=v; edge[tol++].w=w;}bool cmp(Edge a,Edge b){ return a.w