Hdu 1301 Jungle Roads (最小生成树)
地址: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 (最小生成树)相关推荐
- hdu 1301 Jungle Roads 最小生成树
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1301 The Head Elder of the tropical island of Lagrish ...
- HDU 1301 Jungle Roads(裸最小生成树)
题目链接 今天做了好几个模版最小生成树...贴一个kurskral. 1 /* 2 HDU 1301 Jungle Roads 3 最小生成树Kurskal模版 4 */ 5 #include < ...
- HDU 1301 - Jungle Roads( Prim求最小生成树 )
题意 给出n个编号为A~A+n的节点,和某些节点之间的距离,求最小生成树的总权值 思路 裸的Prim算法求最小生成树 算法细节: 最小生成树-Prim算法和Kruskal算法 AC代码 #includ ...
- Jungle Roads//最小生成树kruskal
题目: Jungle Roads Time Limit: 2 Seconds Memory Limit: 65536 KB The Head Elder of the tropical is ...
- 【HDU - 1301】Jungle Roads(并查集+最小生成树)(内附最小生成树两种算法 克鲁斯特尔算法amp;amp;普里姆算法)
题干: Jungle Roads Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Jungle Roads丛林道路(最小生成树PrimKruskal算法)
Jungle Roads丛林道路 POJ - 1251 目录 Jungle Roads丛林道路 题意描述 Kruskal算法解题思路 Kruskal AC代码 Prim 解题思路 AC代码 The H ...
- HDU1102 Constructing Roads 最小生成树
点击打开链接 Online Judge Online Exercise Online Teaching Online Contests Exercise Author F.A.Q Hand In Ha ...
- [HDOJ1301]Jungle Roads
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1301 最小生成树 (Kruskal) 1 #pragma warning(disable:4996) ...
- 题目1154:Jungle Roads
题目描述: The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money ...
- HDU 1025 Constructing Roads In JGShining's Kingdom(DP+二分)
点我看题目 题意 :两条平行线上分别有两种城市的生存,一条线上是贫穷城市,他们每一座城市都刚好只缺乏一种物资,而另一条线上是富有城市,他们每一座城市刚好只富有一种物资,所以要从富有城市出口到贫穷城市, ...
最新文章
- 利用blktrace分析磁盘I/O
- 嵌入式linux设计报告,嵌入式linux课程设计报告
- struts2几种result type探究
- IBM AIX:Java进程大小监视
- 面试题——Java虚拟机
- 湖畔大学最新学员名单公布:胡彦斌以纽班文化董事长身份被录取
- 一个经典编程面试题的“隐退”
- 通俗易懂的monteCarlo积分方法(八)
- 工频干扰频谱测量_力参数传感器的电阻应变测量系统
- each iteration和 each occurrunce的区别
- PMP第六版5个过程组49个活动
- python同构数_怎么用python判断一个数是否是同构数?
- 扩展卡尔曼滤波soc估算 基于EKF算法的锂电池SOC 卡尔曼滤波估计电池soc ,simulink模型
- cryEngine5.3打包
- 华为彩信显示尚未激活服务器,华为手机无法接收彩信提示要开通gprs
- 程序员缓解职业病的秘方
- 【spark】RDD-API
- 数据结构(C语言)——线性表(定义,基本操作)
- 拉斯维加斯类型概率算法-n皇后问题
- web.firewall.RequestRejectedException: The request was rejected because the URL contained a potentia