prime算法(最小生成树模板)

来源:互联网 发布:影响黄金的重要数据 编辑:程序博客网 时间:2024/06/05 10:53
#include<iostream>#include<algorithm>#include<cstring>using namespace std;int _map[305][305];int m;int cost[305];int vis[305];int dist[305];int prime(int x){    int index,sum=0;    vis[x]=1;    for (int i=1;i<=m;i++)        dist[i]=_map[x][i];    for (int i=2;i<=m;i++)    {        int mincost=100000000;        for (int j=1;j<=m;j++)        {            if (!vis[j]&&dist[j]<mincost)            {                mincost=dist[j];                index=j;            }        }        vis[index]=1;        sum+=mincost;        for (int j=1;j<=m;j++)        {            if (!vis[j]&&dist[j]>_map[index][j])            {                dist[j]=_map[index][j];            }        }    }    return sum;}int main(){    cin>>m;    for (int i=1;i<=m;i++)        for (int j=1;j<=m;j++)            cin>>_map[i][j];    cout<<prime(1);    return 0;}