• Kruskal求最小生成树


     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int maxn= 5e4+10;
     4 const double eps= 1e-6;
     5 const int inf = 0x3f3f3f3f;
     6 const int mod =3;
     7 typedef long long ll;
     8 typedef long double ld;
     9 int n,m;
    10 int p[maxn];
    11 struct edge
    12 {
    13     int u,v,w;
    14 }a[maxn];
    15 int cmp(edge a,edge b)
    16 {
    17     return a.w<b.w;
    18 }
    19 int find(int x)
    20 {
    21     return p[x]==x?x:p[x]=find(p[x]);
    22 }
    23 int main()
    24 {
    25     while(scanf("%d %d",&n,&m)!=EOF)
    26     {
    27         int u,v,w;
    28         for(int i=0;i<m;i++)
    29         {
    30             scanf("%d %d %d",&a[i].u,&a[i].v,&a[i].w);
    31         }
    32         sort(a,a+m,cmp);
    33         int sum=n,ans=0;
    34         for(int i=1;i<=n;i++)
    35             p[i]=i;
    36         for(int i=0;i<m;i++)
    37         {
    38             int x,y,z;
    39             x=find(a[i].u),y=find(a[i].v),z=a[i].w;
    40             if(x!=y)
    41             {
    42                 ans+=z;
    43                 p[x]=y;
    44             }
    45         }
    46         printf("%d
    ",ans);
    47     }
    48 }

    克鲁斯卡尔求最小生成树

  • 相关阅读:
    关于iframe页面里的重定向问题
    iframe跨域解决方案
    sql 查询优化小计
    年轻不能遇见太惊艳的人
    图片上传预览
    脚本
    前端常见跨域解决方案
    react
    react高阶组件
    React + MobX 状态管理入门及实例
  • 原文地址:https://www.cnblogs.com/stranger-/p/7995046.html
Copyright © 2020-2023  润新知