SoL:裸的次小生成樹。。。
推薦:KuangBin巨巨的博客 模版 + 詳解
#include#include #include #include using namespace std; const int maxn = 100 + 10; const int INF = 0x3f3f3f3f; int ans; bool vis[maxn]; int lowc[maxn]; int pre[maxn]; int Max[maxn][maxn]; bool used[maxn][maxn]; int Prim(int cost[][maxn],int n) { int ans=0; memset(vis,false,sizeof(vis)); memset(Max,0,sizeof(Max)); memset(used,false,sizeof(used)); vis[0]=true; pre[0]=-1; for(int i=1;i lowc[j]) { minc=lowc[j]; p=j; } if(minc==INF) return -1; ans+=minc; vis[p]=true; used[p][pre[p]]=used[pre[p]][p]=true; for(int j=0;j cost[p][j]) { lowc[j]=cost[p][j]; pre[j]=p; } } } return ans; } int smst(int cost[][maxn],int n) { int Min=INF; for(int i=0;i