c_michong 2021-12-13 20:06 采纳率: 50%
浏览 189
已结题

R7-2 最小生成树构造 (25 分)

img


giegie们!!

输入样例:
4 6
1 2 1
1 3 4
1 4 1
2 3 3
2 4 2
3 4 5

  • 写回答

1条回答 默认 最新

  • ???嘿嘿 2021-12-17 19:15
    关注

    #include<bits/stdc++.h>
    using namespace std;
    const int inf=0x3f3f3f3f;
    int n,m;
    int mp[50][50],book[50],dis[50],parent[50];
    void prim()
    {
    for(int i=1;i<=n;i++)
    {
    dis[i]=mp[1][i];
    if(mp[1][i]!=inf)
    parent[i]=1;
    }
    int ans;
    book[1]=1;
    for(int i=1;i<n;i++)
    {
    int minn=inf,u;
    for(int j=1;j<=n;j++)
    {
    if(!book[j]&&minn>dis[j])
    {
    u=j;
    minn=dis[j];
    }
    }
    book[u]=1;

        int x=parent[u];
        int y=u;
        int z=mp[parent[u]][u];
        if(x>y) 
            swap(x,y);
        printf("%d,%d,%d\n",x,y,z);
        
        for(int v=1;v<=n;v++)
        {
            if(!book[v]&&dis[v]>mp[u][v])
            {
                dis[v]=mp[u][v];
                parent[v]=u;
            }    
        }
    }
    

    }

    int main()
    {
    memset(book,0,sizeof(book));
    cin>>n>>m;
    memset(mp,0x3f,sizeof(mp));
    for(int i=1;i<=n;i++)
    mp[i][i]=0;
    for(int i=1;i<=m;i++)
    {
    int a,b,c;
    cin>>a>>b>>c;
    mp[a][b]=mp[b][a]=min(mp[a][b],c);
    }
    prim();
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月25日
  • 已采纳回答 12月17日
  • 创建了问题 12月13日

悬赏问题

  • ¥15 求指导ADS低噪放设计
  • ¥15 CARSIM前车变道设置
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存