• POJ1251 Jungle Roads


    解题思路:看懂题意是关键,Kruskal算法,最小生成树模板。

    上代码:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 using namespace std;
     5 const int maxn = 80; //边的最大值
     6 int A[30], n, k, vis[maxn], father[30];
     7 
     8 int Find(int x)
     9 {
    10     return father[x] == x ?  x : father[x] = Find(father[x]);
    11 }
    12 
    13 struct node{
    14     int x, y, w;
    15 }p[maxn];
    16 
    17 int cmp(node A, node B)
    18 {
    19     return A.w < B.w;//从小到大
    20 }
    21 
    22 int main()
    23 {
    24     char ch;
    25     int x, b;
    26     while(~scanf("%d", &n) && n)
    27     {
    28         int t = n - 1;
    29         int cnt = 0;
    30         //要初始化哦
    31         for(int i = 1; i <= n; i++) father[i] = i;
    32         while(t--)
    33         {
    34             scanf(" %c", &ch);
    35             int m = ch - 'A' + 1;
    36             scanf("%d", &k);
    37             while(k --)
    38             {
    39                 p[cnt].x = m;//放在循环里面
    40                 scanf(" %c %d", &ch, &x);
    41                 b = ch - 'A' + 1;
    42                 p[cnt].y = b, p[cnt++].w = x;
    43             }
    44         }
    45         int sum = 0;
    46         sort(p, p + cnt, cmp);
    47         for(int i = 0; i < cnt; i++)
    48         {
    49             int rootx = Find(p[i].x);
    50             int rooty = Find(p[i].y);
    51             //根节点不同,则加起来,并放到同一个集合
    52             if(rootx != rooty)
    53             {
    54                 sum += p[i].w;
    55                 father[rootx] = rooty;
    56             }
    57         }
    58         printf("%d
    ", sum);
    59     }
    60     return 0;
    61 }
    View Code
  • 相关阅读:
    PostMan使用教程(1)
    测试工作量的评估方法
    Jmeter之Bean shell使用(二)
    centos7 编译安装redis
    Centos7 安装mariadb
    Centos7 安装使用virtualenvwrapper
    Centos7安装python3.6
    linux基础命令2
    linux基础命令
    linux目录结构
  • 原文地址:https://www.cnblogs.com/loveprincess/p/4910591.html
Copyright © 2020-2023  润新知