地址:http://acm.hdu.edu.cn/showproblem.php?pid=1301

很明显,这是一道“赤裸裸”的最小生成树的问题;

我这里采用了Kruskal算法,当然用Prim算法也一样可以解题。

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
using namespace std;typedef struct node{int from, to;int length;  //长度,指代问题中两地间的费用
}node;const int maxn = 90;
node edge[maxn];
int pre[30];
int N,turn;int cmp(const void *a, const void *b) // 比较函数
{return (*(node*)a).length-(*(node*)b).length;
}inline int root( int i ) //用于判断是否两节点在同一树上
{while( pre[i] )i=pre[i];return i;
}inline void input()  //输入
{char c1,c2;int i,order;int dis;turn=0;while(cin>>c1>>order){for(i=0;i<order;i++){cin>>c2>>dis;edge[turn].from=c1-'A';edge[turn].to=c2-'A';edge[turn].length=dis;turn++;}if( c1=='A'+N-2 ) //输入完成,退出break;}return ;
}inline int span()
{memset(pre,0,sizeof(pre));qsort(edge,turn,sizeof(node),cmp); //根据长度排序int cost=0;int count=0;int pos=-1;int m,n;while(count<N-1){do{pos++;m=root( edge[pos].from );n=root( edge[pos].to );}while(n==m);                 //用于判断是否两节点在同一树上cost = cost + edge[pos].length;pre[m]=n;             //把该节点加入这棵树count++;}return cost;
}int main()
{while(cin>>N && N){input();int flag=span();cout<<flag<<endl;}return 0;
}

转载于:https://www.cnblogs.com/Emerald/p/3950030.html

Hdu 1301 Jungle Roads (最小生成树)相关推荐

  1. hdu 1301 Jungle Roads 最小生成树

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1301 The Head Elder of the tropical island of Lagrish ...

  2. HDU 1301 Jungle Roads(裸最小生成树)

    题目链接 今天做了好几个模版最小生成树...贴一个kurskral. 1 /* 2 HDU 1301 Jungle Roads 3 最小生成树Kurskal模版 4 */ 5 #include < ...

  3. HDU 1301 - Jungle Roads( Prim求最小生成树 )

    题意 给出n个编号为A~A+n的节点,和某些节点之间的距离,求最小生成树的总权值 思路 裸的Prim算法求最小生成树 算法细节: 最小生成树-Prim算法和Kruskal算法 AC代码 #includ ...

  4. Jungle Roads//最小生成树kruskal

    题目: Jungle Roads Time Limit: 2 Seconds      Memory Limit: 65536 KB The Head Elder of the tropical is ...

  5. 【HDU - 1301】Jungle Roads(并查集+最小生成树)(内附最小生成树两种算法 克鲁斯特尔算法amp;amp;普里姆算法)

    题干: Jungle Roads Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  6. Jungle Roads丛林道路(最小生成树PrimKruskal算法)

    Jungle Roads丛林道路 POJ - 1251 目录 Jungle Roads丛林道路 题意描述 Kruskal算法解题思路 Kruskal AC代码 Prim 解题思路 AC代码 The H ...

  7. HDU1102 Constructing Roads 最小生成树

    点击打开链接 Online Judge Online Exercise Online Teaching Online Contests Exercise Author F.A.Q Hand In Ha ...

  8. [HDOJ1301]Jungle Roads

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1301 最小生成树 (Kruskal) 1 #pragma warning(disable:4996) ...

  9. 题目1154:Jungle Roads

    题目描述: The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money ...

  10. HDU 1025 Constructing Roads In JGShining's Kingdom(DP+二分)

    点我看题目 题意 :两条平行线上分别有两种城市的生存,一条线上是贫穷城市,他们每一座城市都刚好只缺乏一种物资,而另一条线上是富有城市,他们每一座城市刚好只富有一种物资,所以要从富有城市出口到贫穷城市, ...

最新文章

  1. 利用blktrace分析磁盘I/O
  2. 嵌入式linux设计报告,嵌入式linux课程设计报告
  3. struts2几种result type探究
  4. IBM AIX:Java进程大小监视
  5. 面试题——Java虚拟机
  6. 湖畔大学最新学员名单公布:胡彦斌以纽班文化董事长身份被录取
  7. 一个经典编程面试题的“隐退”
  8. 通俗易懂的monteCarlo积分方法(八)
  9. 工频干扰频谱测量_力参数传感器的电阻应变测量系统
  10. each iteration和 each occurrunce的区别
  11. PMP第六版5个过程组49个活动
  12. python同构数_怎么用python判断一个数是否是同构数?
  13. 扩展卡尔曼滤波soc估算 基于EKF算法的锂电池SOC 卡尔曼滤波估计电池soc ,simulink模型
  14. cryEngine5.3打包
  15. 华为彩信显示尚未激活服务器,华为手机无法接收彩信提示要开通gprs
  16. 程序员缓解职业病的秘方
  17. 【spark】RDD-API
  18. 数据结构(C语言)——线性表(定义,基本操作)
  19. 拉斯维加斯类型概率算法-n皇后问题
  20. web.firewall.RequestRejectedException: The request was rejected because the URL contained a potentia

热门文章

  1. appium 原理解析(转载雷子老师博客)
  2. 十四.jmter图形监控扩展
  3. 1013-----C语言----------几个va_宏函数的使用
  4. Devexpress GridView 提交焦点列
  5. 细说Redirect重定向请求(情节分享)
  6. css+js调整当前界面背景音量
  7. Go语言实战 (William,Kennedy 等著)
  8. composer安装和使用
  9. sessionStorage第一次进入页面显示弹窗
  10. JDK-Logger