最小產生樹-prim演算法模板

來源:互聯網
上載者:User
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define inf 10000000#define maxn 21int m,n;int edge[maxn][maxn],lowcost[maxn],nearvex[maxn];void prim(int u0){    int i,j;    int sumweight=0;    for(i=1; i<=n; i++)    {        lowcost[i]=edge[u0][i];        nearvex[i]=u0;    }    nearvex[u0]=-1;    for(i=1; i<n; i++)    {        int min=inf;        int v=-1;        for(j=1; j<=n; j++)        {            if(nearvex[j]!=-1 && lowcost[j]<min)            {                v=j;                min=lowcost[j];            }        }        if(v!=-1)        {            cout<<nearvex[v]<<" "<<v<<" "<<lowcost[v]<<endl;            nearvex[v]=-1;            sumweight+=lowcost[v];            for(j=1; j<=n; j++)            {                if(nearvex[j]!=-1 && edge[v][j]<lowcost[j])                {                    lowcost[j]=edge[v][j];                    nearvex[j]=v;                }            }        }    }    cout<<"weight of mst is "<<sumweight<<endl;}int main(){    ios::sync_with_stdio(false);    freopen("1.txt","r",stdin);    int i,j,w,u,v;    cin>>n>>m;    memset(edge,0,sizeof(edge));    for(i=1; i<=m; i++)    {        cin>>u>>v>>w;        edge[u][v]=edge[v][u]=w;    }    for(i=1; i<=n; i++)    {        for(j=1; j<=n; j++)        {            if(i==j)                edge[i][j]=0;            else if(edge[i][j]==0)                edge[i][j]=inf;        }    }    prim(1);    return 0;}/*7 9 1 2 281 6 102 3 162 7 143 4 124 5 224 7 185 6 255 7 24*/

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.