题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2403
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include<iostream>
#include<limits>
usingnamespacestd;
intn;
constintMAX_VETEXT_NUM=27;
intmap[MAX_VETEXT_NUM][MAX_VETEXT_NUM];
intclosedge[MAX_VETEXT_NUM];
intprim()
{
intv[MAX_VETEXT_NUM];//顶点集合
inti,j,k,sum;
sum=0;
k=0;//初始点为'A'
for(i=0;i<MAX_VETEXT_NUM;++i)
{
if(i!=k)
{
closedge[i]=map[k][i];
v[i]=0;
}
}
v[k]=1;//'A'点并入集合中
for(i=1;i<MAX_VETEXT_NUM;++i)
{
intmin=numeric_limits<int>::max();
//选择k
for(j=0;j<MAX_VETEXT_NUM;++j)
{
if(!v[j]&&(closedge[j]!=0)&&(closedge[j]<min))
{
min=closedge[j];
k=j;
}
}
if(min==numeric_limits<int>::max())
{
break;
}
sum+=min;
v[k]=1;//k个顶点并入集合
//从k顶点出发有更短的边
for(j=0;j<MAX_VETEXT_NUM;++j)
{
if(map[k][j]<closedge[j])
{
closedge[j]=map[k][j];
}
}
}
returnsum;
}
intmain()
{
inti,j;
charchStart,chEnd;
intnOutEdges,nValue;
while(cin>>n&&n!=0)
{
//初始化图
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
map[i][j]=map[j][i]=numeric_limits<int>::max();
}
}
for(i=0;i<n-1;++i)
{
cin>>chStart>>nOutEdges;
for(j=0;j<nOutEdges;++j)
{
cin>>chEnd>>nValue;
map[chStart-'A'][chEnd-'A']=nValue;
map[chEnd-'A'][chStart-'A']=nValue;
}
}
cout<<prim()<<endl;
}
return0;
}
分享到:
相关推荐
HDU ACM代码集合是针对ACM(国际大学生程序设计竞赛,International Collegiate Programming Contest)的一份资源,这个压缩包中的代码涵盖了多种算法,是参赛者或对算法学习感兴趣的人宝贵的参考资料。ACM竞赛旨在...
在ACM(国际大学生程序设计竞赛)中,HDU(杭州电子科技大学)的在线判题系统是许多参赛者磨炼算法技巧的重要平台。这个平台涵盖了众多的算法问题,旨在提升参赛者的编程能力和逻辑思维能力。以下是对标题和描述中...
HDU算法讲解的PPT是一份非常有价值的教育资源,由知名教育机构HDU(杭州电子科技大学)的lcy老师精心制作并讲解。这份PPT涵盖了算法的各个方面,是学习和提升算法能力的理想材料。标签“算法”、“讲解”和“经典”...
根据提供的信息,我们可以总结出以下关于“hdu动态规划算法集锦”的知识点: ### 动态规划基础概念 动态规划是一种解决多阶段决策问题的方法,它通过将原问题分解为互相重叠的子问题,利用子问题的解来构建原问题...
通过完整版的HDU_ACM培训课件,学员可以从理论到实践全面提高自己的编程能力和竞赛水平,为在ACM竞赛中取得好成绩打下坚实基础。对于想要深入理解和掌握算法及编程技巧的人来说,这套课件是一份宝贵的资源。
acm 技术大牛 课件 HDU 自学必备课件 全套齐全 (lecture_01)初识ACM (lecture_02)简单数学题 (lecture_03)递推求解 (lecture_04)动态规划(1)_ (lecture_05)计算几何基础_ (lecture_06)母函数 (lecture_...
【标题】"HDU_2010.rar"是一个压缩包文件,其中包含了与"HDU 2010"相关的资源,特别是针对"HDU ACM20"比赛的编程题目。"hdu 2010"和"hdu 20"可能是该比赛的不同简称或分类,而"hdu acm20"可能指的是该赛事的第20届...
HDU(杭州电子科技大学在线评测系统)是一个深受程序员喜爱的在线编程练习平台,它提供了丰富的算法题目供用户挑战,帮助他们提升编程技能和算法理解能力。"hdu.rar_hdu"这个压缩包文件很可能是某位程序员整理的他在...
HDU(杭州电子科技大学)的ACM算法课件是一份宝贵的学习资源,旨在提升程序员的算法思维和解题能力。ACM,全称国际大学生程序设计竞赛(International Collegiate Programming Contest),是全球范围内的一项权威性...
杭州电子科技大学oj平台上的第1010题,是关于搜索的题目,很不错的题
【标题】"HDU题目java实现"所涉及的知识点主要集中在使用Java编程语言解决杭州电子科技大学(HDU)在线评测系统中的算法问题。HDU是一个知名的在线编程竞赛平台,它提供了大量的算法题目供参赛者练习和提交解决方案...
贪心算法是一种常用的算法思想,在 ACM HDU 题目分类中,贪心算法也占据了一定的比例。例如,1009 贪心;1050 贪心;1052 贪心;1053 贪心,关于 Huffman 编码 等等。 数学题 数学题是 ACM HDU 题目分类中的一大类...
JungleRoads (丛林道路) - **问题描述**:可能涉及到在复杂地形中规划道路,需要考虑道路的成本和效率。 - **算法应用**:最小生成树算法如Prim或Kruskal,用于构建连接所有节点的最低成本路径。 #### 4. ...
**Dijkstra算法解HDU1874** Dijkstra算法是一种经典的图论算法,由荷兰计算机科学家艾兹格·迪科斯彻在1956年提出,主要用于解决单源最短路径问题。在这个问题中,我们需要从一个指定的起点(源节点)出发,找到...
【标题】"hdu.rar_HDU 1089.cpp_OJ题求和_hdu_horsekw5_杭电obj" 提供的信息是关于一个压缩文件,其中包含了一个名为 "HDU 1089.cpp" 的源代码文件,这个文件是为了解决杭州电子科技大学(Hangzhou Dianzi ...
(HDUACM2010版_08)母函数(HDUACM2010版_08)母函数(HDUACM2010版_08)母函数(HDUACM2010版_08)母函数(HDUACM2010版_08)母函数(HDUACM2010版_08)母函数
下载这些代码可以帮助学习者理解如何应用编程技巧和算法来解决HDU OJ上的问题,从而提高自己的编程和算法能力。 标签"HDu acm"进一步确认了这些代码与ACM竞赛相关的编程挑战有关,可能是参赛者或训练者为了准备比赛...
### hdu1250高精度加法 #### 背景介绍 在计算机科学与编程竞赛中,处理大整数运算(特别是加法、减法、乘法等)是常见的需求之一。当数字的位数超过了标准数据类型(如`int`、`long`等)所能表示的最大值时,就需要...
通过解答杭电ACMhdu1163这样的题目,参赛者可以锻炼自己的算法思维,提升编程能力,为参与更高级别的编程竞赛打下坚实基础。同时,这也是一个很好的实践平台,将理论知识转化为实际解决问题的能力。
【标题】"HDU DP动态规划"涉及到的是在算法领域中的动态规划(Dynamic Programming,简称DP)技术,这是解决复杂问题的一种高效方法,尤其适用于有重叠子问题和最优子结构的问题。动态规划通常用于优化多阶段决策...