社区讨论

看不出错哪了,邻接矩阵+Prim,几乎是模板。

P1547[USACO05MAR] Out of Hay S参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lobpupt4
此快照首次捕获于
2023/10/30 00:59
2 年前
此快照最后确认于
2023/11/04 05:37
2 年前
查看原帖
CPP
#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;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...