题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1301

//HDOJ1301
#include<iostream>
#include<cstring>
using namespace std;
#define MAX 99999
#define LEN 30
int dist[LEN];//某点的权值 起始点到目标点的权值
int map[LEN][LEN];//某点到某点两点之间的权值
bool isvisitd[LEN];//表示某点是否访问过 //初始化map数组 设置为无穷大
void init(int n){
for(int i = ;i<=n;i++) {
for(int j = ;j<=n;j++)
map[i][j] = MAX;
}
} //prim最小生成树的算法
int prim(int n){
int i,j,min,pos,sum;
sum = ; //最小生成树的权值 //初始化,表示没有一点走过
memset(isvisitd,false,sizeof(isvisitd)); //初始化给dist数组赋值
for(i = ;i<=n;i++){
dist[i] = map[][i];
} isvisitd[] = true;//标记1已被访问 从1开始 //找到权值最小点并记下位置
for(i = ;i<n;i++){
min = MAX;
for(j = ;j<=n;j++){
if(!isvisitd[j]&&dist[j]<min){
min = dist[j];
pos = j;//记录下该位置
}
} sum+=min;
isvisitd[pos] = true; //更新权值
for(j = ;j<=n;j++) {
if(!isvisitd[j]&&dist[j]>map[pos][j]){
dist[j] = map[pos][j];
}
} }
return sum;
}
int main(){
int i,j,n,m,len;
char start,end;
while(scanf("%d",&n)!=EOF){
if(n==){
break;
} init(n);//初始化 for(i=;i<n-;i++){
cin>>start>>m;
for( j = ;j<m;j++){
cin>>end>>len;
map[i+][end-'A'+] = len;
map[end-'A'+][i+] = len;
}
}
cout<<prim(n)<<endl;
}
return ; }

运行结果如下:

最小生成树 Prim算法的实现及应用  http://blog.csdn.net/worker90/article/details/6642959

HDOJ 1301 Jungle Roads的更多相关文章

  1. POJ 1251 && HDU 1301 Jungle Roads (最小生成树)

    Jungle Roads 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/A http://acm.hust.edu.cn/vju ...

  2. hdu 1301 Jungle Roads 最小生成树

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

  3. hdu 1301 Jungle Roads krusckal,最小生成树,并查集

    The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money was s ...

  4. POJ 1251 & HDU 1301 Jungle Roads

    题目: Description The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign ...

  5. hdu 1301 Jungle Roads

    http://acm.hdu.edu.cn/showproblem.php?pid=1301 #include <cstdio> #include <cstring> #inc ...

  6. Hdu 1301 Jungle Roads (最小生成树)

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=1301 很明显,这是一道“赤裸裸”的最小生成树的问题: 我这里采用了Kruskal算法,当然用Prim算法也 ...

  7. HDU 1301 Jungle Roads (最小生成树,基础题,模版解释)——同 poj 1251 Jungle Roads

    双向边,基础题,最小生成树   题目 同题目     #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<stri ...

  8. POJ 1251 + HDU 1301 Jungle Roads 【最小生成树】

    题解 这是一道裸的最小生成树题,拿来练手,题目就不放了 个人理解  Prim有些类似最短路和贪心,不断找距当前点最小距离的点 Kruskal类似于并查集,不断找最小的边,如果不是一棵树的节点就合并为一 ...

  9. 最小生成树 || HDU 1301 Jungle Roads

    裸的最小生成树 输入很蓝瘦 **并查集 int find(int x) { return x == fa[x] ? x : fa[x] = find(fa[x]); } 找到x在并查集里的根结点,如果 ...

随机推荐

  1. shell语句记录-awk

    cat ./daily_uv/daily_uv_20140104 | awk '{fr[$1]+=$3; k=$1 "_" $2; av[k]+=$3;} END{for (k i ...

  2. This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决

    在一个Mysql表达式中使用嵌套查询,出现了这个错误.原因是内层select语句带有limit子句.   在网上查了下,有文章指出: 比如这样的语句是不能正确执行的. select * from ta ...

  3. spark的环境安装

    1.安装sbt 正常安装流程. 在cmd里运行的时候,要提前设置代理(如果上网有代理),set JAVA_OPTS=-Dhttp.proxySet=true -Dhttp.proxyHost=172. ...

  4. windows程序移植linux

    1,路径名统一用正斜杠“/”.(windows下正反斜杠都识别,linux只认正斜杠.) 2,统一使用UTF-8格式编码. vim中无法保存汉字时,可输入下列命令: :set fileencoding ...

  5. APIO2014 爆零总结

    真心爆零 不要不服 这次apio给了一种新的赛制 看上去很好? 所有人都可以在线提交 并且实时知道自己的分数 它对每个题目分成若干分数段 每个分数段有若干数据 要获得这个分数段的分数需要通过这个分数段 ...

  6. 关于使用base36的技巧 生成 优惠券兑换码的相关讨论

    关于优惠券的生成后台的制作问题,已经拖了很久了还没有合并.但是持续暴露出来的问题 也很多,我的代码以及前面的一个人的代码被持续review暴露出了大量问题.昨天晚上在

  7. localStorage的一些简单的操作

    本地存储     cookie     localStorage                           cookie             localStorage     生存周期 ...

  8. Operation not applicable

    ClientDataSet.DataSetProvider1 Operation not applicable ClientDataSet1->Open(); 解决办法 1.update new ...

  9. STM32中的位带(bit-band)操作

    转:http://blog.csdn.net/gaojinshan/article/details/11479929 //位带操作,实现51类似的GPIO控制功能 //具体实现思想,参考<< ...

  10. LC并联谐振回路