zoukankan      html  css  js  c++  java
  • HDOJ1863 ( 畅通工程 ) 【最小生成树,kruscal】

    根据《畅通工程》系列中的某题代码直接改的,忘记具体哪道了。
    Problem : 1863 ( 畅通工程 )     Judge Status : Accepted
    RunId : 5940637    Language : C++    Author : qq1203456195
    Code Render Status : Rendered By HDOJ C++ Code Render Version 0.01 Beta
     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 using namespace std;
     5 #define N 101
     6 typedef struct{
     7     int x,y;
     8     int len;
     9 }EDGE;
    10 int set[N],n,r;
    11 EDGE edge[N*N];
    12 int cmp(const EDGE& a,EDGE& b)
    13 {
    14     return a.len<b.len;
    15 }
    16 void MergeSet(int a,int b)
    17 {
    18     int i;
    19     for (i=1;i<=n;i++)
    20         if(set[i]==a)
    21             set[i]=b;
    22 }
    23 int main()
    24 {
    25     int i,p,sum,f,t;
    26     while (scanf("%d",&r),r)//n为村庄个数
    27     {
    28         scanf("%d",&n);
    29         //初始化set
    30         for (i=1;i<=n;i++)    set[i]=i;
    31         //读取边数
    32         for (i=0;i<r;i++)    scanf("%d%d%d",&edge[i].x,&edge[i].y,&edge[i].len);
    33         //已经选取的点的个数
    34         p=0;
    35         //路径总长度
    36         sum=0;
    37         //对边进行排序
    38         sort(edge,edge+i,cmp);
    39         for (i=0;i<r&&p!=n-1;i++)
    40         {
    41             //查找当前边的起始点是否在同一个集合中
    42             f=set[edge[i].x];
    43             t=set[edge[i].y];
    44             if(f!=t)
    45             {
    46                 MergeSet(f,t);
    47                 p++;
    48                 sum+=edge[i].len;
    49             }
    50         }
    51         if(p!=n-1)
    52             printf("?\n");
    53         else
    54             printf("%d\n",sum);
    55     }
    56     return 0;
    57 }
    字节跳动内推

    找我内推: 字节跳动各种岗位
    作者: ZH奶酪(张贺)
    邮箱: cheesezh@qq.com
    出处: http://www.cnblogs.com/CheeseZH/
    * 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    java.lang.IllegalArgumentException
    JDBC概述
    IntelliJ IDEA15导入jar包
    mySQL基础
    javascript基础
    css基础
    html笔记
    关于intelliJ idea创建servlet提示cannot resolve symbol‘servlet’的问题
    IntelliJ IDEA新建JAVA WEB项目(转载)
    winform 子报表数据源赋值
  • 原文地址:https://www.cnblogs.com/CheeseZH/p/2498590.html
Copyright © 2011-2022 走看看