描述

最近,小Hi很喜欢玩的一款游戏模拟城市开放出了新Mod,在这个Mod中,玩家可以拥有不止一个城市了!

但是,问题也接踵而来——小Hi现在手上拥有N座城市,且已知这N座城市中任意两座城市之间建造道路所需要的费用,小Hi希望知道,最少花费多少就可以使得任意两座城市都可以通过所建造的道路互相到达(假设有A、B、C三座城市,只需要在AB之间和BC之间建造道路,那么AC之间也是可以通过这两条道路连通的)。

输入

每个测试点(输入文件)有且仅有一组测试数据。

在一组测试数据中:

第1行为1个整数N,表示小Hi拥有的城市数量。

接下来的N行,为一个N*N的矩阵A,描述任意两座城市之间建造道路所需要的费用,其中第i行第j个数为Aij,表示第i座城市和第j座城市之间建造道路所需要的费用。

对于100%的数据,满足N<=10^3,对于任意i,满足Aii=0,对于任意i, j满足Aij=Aji, 0&ltAij&lt10^4.

输出

对于每组测试数据,输出1个整数Ans,表示为了使任意两座城市都可以通过所建造的道路互相到达至少需要的建造费用。

Sample Input

5
0 1005 6963 392 1182
1005 0 1599 4213 1451
6963 1599 0 9780 2789
392 4213 9780 0 5236
1182 1451 2789 5236 0

Sample Output

4178
题意描述:
输入城市的个数及N*N的矩阵
计算并输出使任意两座城市都可以通过所建造的道路互相到达至少需要的建造费用
解题思路:
典型的求最小生成树,根据数据的格式,使用Prim算法即可。Prim算法主要的思路就是每次选择距离生成树最近的结点添加,再更新新结点到尚未加入到树的各个结点的距离,便于下次查找距离生成树最近的结点。
代码实现:
 #include<stdio.h>
#include<string.h>
int e[][],book[],dis[];
const int inf=;
int main()
{
int n,i,j,k,c,sum,min;
while(scanf("%d",&n) != EOF)
{
for(i=;i<=n;i++)
for(j=;j<=n;j++)
scanf("%d",&e[i][j]);
for(i=;i<=n;i++)
dis[i]=e[][i]; memset(book,,sizeof(book));
book[]=;
c=;
sum=;
while(c < n)
{
min=inf;
for(j=,i=;i<=n;i++)
{
if(!book[i] && dis[i] < min)//注意是且的关系
{
min=dis[i];
j=i;
}
}
book[j]=;
c++;
sum += dis[j];
for(k=;k<=n;k++)
{
if(!book[k] && dis[k] > e[j][k])
dis[k]=e[j][k];
}
}
printf("%d\n",sum);
}
return ;
}

易错分析:

1、注意在寻找距离生成树最近的结点时,判断条件是且

最新文章

  1. CSS控制样式的三种方式优先级对比验证
  2. Java unserialize serialized Object(AnnotationInvocationHandler、ysoserial) In readObject() LeadTo InvokerTransformer(Evil MethodName/Args)
  3. UML 六种关系
  4. 二十四、【开源】EFW框架Winform前端开发之项目结构说明和调试方法
  5. MySql模糊查询like通配符使用详细介绍
  6. maven配置信息查询
  7. Java之Map
  8. 汇编语言学习系列 for循环实现
  9. [转]The Best Plugins for Sublime Text
  10. js高级4
  11. 程序编译运行和exe运行之文件位置的区别
  12. 20165215 2017-2018-2 《Java程序设计》第3周学习总结
  13. ISDBT中CC的处理疑问
  14. 淘宝应对&quot;双11&quot;的技术架构分析
  15. 关于Unity中水和雾的使用
  16. XAF-如何实现自定义权限系统用户对象
  17. esLint参数设置
  18. Wannafly挑战赛17 B
  19. c语言中指针的一个小错误
  20. 【mybatis】count 计数查询 + List的IN查询

热门文章

  1. Mac下nvm管理node.js版本问题
  2. MySQL 加锁处理分析-转载
  3. MySQL 最左前缀(Leftmost Prefix) &amp; 组合索引(复合索引,多列索引)
  4. (通用)深度学习环境搭建:tensorflow安装教程及常见错误解决
  5. 【JavaScript 】for 循环进化史
  6. Robot Framework学习笔记(一)------环境搭建
  7. Tableau的简单数据可视化操作
  8. micropython TPYBoard v202 超声波测距
  9. 2017春 前端自动化(二) 页面自动刷新、sass与css转换的使用、pxToRem直观转换
  10. Hadoop源码篇--Client源码