看不出错哪了,邻接矩阵+Prim,几乎是模板。
查看原帖
看不出错哪了,邻接矩阵+Prim,几乎是模板。
394113
zly1783598949楼主2021/9/25 23:00
#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;

int n,m;
int g[5010][5010],dis[5010],vis[5010];
int ans;

void init()
{
    memset(g,INF,sizeof(g));
    for(int i=1;i<=n;i++)
        g[i][i] = 0;
    memset(dis,INF,sizeof(dis));
}

int main()
{
    cin >> n >> m;
    init();
    for(int i=1;i<=m;i++)
    {
        int x,y,z;
        scanf("%d%d%d",&x,&y,&z);
        g[x][y] = z;
        g[y][x] = z;
    }
    //prim:
    dis[1] = 0;
    for(int j=1;j<=n;j++)
    {
        int minn = INF;
        int loc = 0;
        for(int i=1;i<=n;i++)
        {
            if(!vis[i] && dis[i] < minn)
            {
                minn = dis[i];
                loc = i;
            }
        }
        vis[loc] = 1;
        ans = max(ans,dis[loc]);
        for(int i=1;i<=n;i++)
        {
            if(!vis[i] && dis[i] > g[loc][i])
                dis[i] = g[loc][i];
        }
    }
    //
    cout << ans <<endl;
    return 0;
}

2021/9/25 23:00
加载中...