zoukankan      html  css  js  c++  java
  • poj 1258 Agri-Net

    kruskal

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstdio>
     4 using namespace std;
     5 #define maxn 200
     6 int a[maxn][maxn];
     7 int par[maxn];
     8 int n,len;
     9 int num;
    10 struct node
    11 {
    12     int x;
    13     int y;
    14     int w;
    15 };
    16 node e[maxn * maxn / 2];
    17 int cmp(const node& a,const node &b)
    18 {
    19     return a.w < b.w;
    20 }
    21 int Find(int k)
    22 {
    23     if(par[k] == k)   return k;
    24     par[k] = Find(par[k]);
    25     return par[k];
    26 }
    27 void Merge(int x,int y)
    28 {
    29     int a = Find(x);
    30     int b = Find(y);
    31     if(a != b)
    32     {
    33         par[a] = b;
    34     }
    35 }
    36 
    37 void kruskal()
    38 {
    39 
    40     while(cin>>n)
    41     {
    42         for(int i = 0; i <= n+5; i++)
    43             par[i] = i;
    44         num = 0;
    45         len = 0;
    46         for(int i = 1; i <= n; i++)
    47             for(int j = 1; j <= n; j++)
    48                 cin>>a[i][j];
    49 
    50         for(int i = 1; i <= n; i++)
    51             for(int j = i + 1; j <= n; j++)
    52             {
    53                 e[num].x = i;
    54                 e[num].y = j;
    55                 e[num++].w = a[i][j];
    56             }
    57         sort(e,e+num,cmp);
    58         for(int i = 0; i < num; i++)
    59         {
    60             if(Find(e[i].x) != Find(e[i].y))
    61             {
    62                 Merge(e[i].x,e[i].y);
    63                 len += e[i].w;
    64             }
    65         }
    66         cout<<len<<endl;
    67     }
    68 
    69 }
    70 int main()
    71 {
    72     freopen("input.txt","r",stdin);
    73     kruskal();
    74 
    75     return 0;
    76 }
  • 相关阅读:
    字符串比较
    LOOP AT SCREEN
    Trunc的日期用法
    【ABAP】SELECT-ENDSELECT尽量不要用
    【转】Abap For all entries in 使用
    01如何创建sequence:
    abap --MOVE-CORRESPONDING
    Abap 常用变量
    StringBuffer的用法
    Spring事务的传播方式
  • 原文地址:https://www.cnblogs.com/imLPT/p/3879698.html
Copyright © 2011-2022 走看看