图算法---普利姆算法
Posted yangmenda
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图算法---普利姆算法相关的知识,希望对你有一定的参考价值。
#include<iostream> #include<cstring> #include<climits> using namespace std; const int M=500; int cost[M][M]; int Creat(){ int n,m; cin>>n>>m; for(int q=1;q<=n;q++){ for(int w=1;w<=n;w++)cost[q][w]=INT_MAX; } int a,b,c; for(int q=1;q<=m;q++){ cin>>a>>b>>c; cost[a][b]=c; cost[b][a]=c; } return n; } void prim(int n){ int close[M],lowcost[M]; for(int q=1;q<=n;q++){ close[q]=1; lowcost[q]=cost[1][q]; } close[1]=-1; for(int q=1;q<n;q++){ int Min=INT_MAX,u=q; for(int w=1;w<=n;w++)if(close[w]!=-1 && lowcost[w]<Min){ Min=lowcost[w]; u=w; } cout<<"("<<close[u]<<","<<u<<")"<<" "<<lowcost[u]<<endl; for(int w=1;w<=n;w++)if(close[w]!=-1 && lowcost[w]>cost[u][w]){ lowcost[w]=cost[u][w]; close[w]=u; } } return; } int main() { int t; cin>>t; while(t--){ int n=Creat(); prim(n); } return 0; }
以上是关于图算法---普利姆算法的主要内容,如果未能解决你的问题,请参考以下文章