最小生成树一·Prim算法

描述

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

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

输入

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

在一组测试数据中:

第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<Aij<10^4.

输出

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

样例输入

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

样例输出

4178

程序代码:

#include<stdio.h>
#include<string.h>
#define inf 0x7f7f7f7f
int e[1010][1010],book[1010],dis[1010];
int main()
{int a,n,i,j,count,sumn,minn,u;while(scanf("%d",&n)!=EOF){count=0;sumn=0;memset(book,0,sizeof(book));for(i=1;i<=n;i++)for(j=1;j<=n;j++){scanf("%d",&a);e[i][j]=a;}for(i=1;i<=n;i++)dis[i]=e[1][i];book[1]=1; count++;//代表点 while(count<n){minn=inf;    for(i=1;i<=n;i++)if(book[i]==0&&dis[i]<minn){minn=dis[i];u=i;}book[u]=1;count++;sumn+=dis[u];for(i=1;i<=n;i++)if(book[i]==0&&dis[i]>e[u][i])dis[i]=e[u][i];     }   printf("%d\n",sumn);}return 0;
}

hihoCoder-1097-最小生成树一·Prim算法 (最小生成树)相关推荐

  1. #1097 : 最小生成树一·Prim算法

    #1097 : 最小生成树一·Prim算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 最近,小Hi很喜欢玩的一款游戏模拟城市开放出了新Mod,在这个Mod中,玩家可 ...

  2. C++编程练习(10)----“图的最小生成树“(Prim算法、Kruskal算法)

    1.Prim 算法 以某顶点为起点,逐步找各顶点上最小权值的边来构建最小生成树. 2.Kruskal 算法 直接寻找最小权值的边来构建最小生成树. 比较: Kruskal 算法主要是针对边来展开,边数 ...

  3. 数据结构笔记(二十九)--最小生成树(prim算法思想)

    最小生成树(prim算法思想) 一.预知概念 直达:两顶点直接相连接 路径:两顶点之间可以有其他顶点,但最终两顶点是能够连接的 假如我们有四台电脑,怎样连接才能保证这四台电脑两两相互通信组成局域网呢? ...

  4. 离散实验一 油管铺设 (求最小生成树的Prim算法的实际应用)

    实验一 油管铺设 2018.11.06于CSDN释放 详见GitHub: https://github.com/DolorHunter/PrimAlgorithm 实验准备 最小生成树问题,求最小生成 ...

  5. 最小生成树的prim算法(java)

    /** * 最小生成树的prim算法 * @author liuy */ public class Prim { public static void prim(int num, float[][] ...

  6. 最小生成树(Prim算法,Kruskal算法)

    最小生成树 假设要在n个城市之间建立通信联络网,则连通n个城市只需要n-1条线路.这时,自然各 考虑这样一个问题,如何在最节省经费的前提下建立这个通信网. 在每两个城市之间都可设置一条线路,相应地都要 ...

  7. 最小生成树之 Prim算法 Kruskal算法

    1 描述 问题:修建一个连接各个小区与煤气供应站点之间的管道,使得造价成本最低,即构造一颗最小生成树.但是如何求解? 对应模型:树结构,生成树,最小生成树 2 prim算法实例 基本思想:在满足如下条 ...

  8. hdu 1233 还是畅通工程 最小生成树(prim算法 + kruskal算法)

    还是畅通工程                                                                            Time Limit: 4000/2 ...

  9. 最小生成树之prim算法

    一 背景 二  prim算法java版 package leaning.graph;/** 最小生成树之普里姆算法* */ public class PrimMiniCostSpanningTree ...

  10. 图的最小生成树(Prim算法)

    最小生成树 定义:生成树中边的权值(代价)之和最小的树 Prim Prim算法:普里姆算法,图论中的一种算法,可在加权连通图里搜索最小生成树. Ps:该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克( ...

最新文章

  1. 大型软件公司.net面试题!一定得看(附答案)
  2. 什么是 DDos 攻击
  3. JavaScript:学习笔记(9)——Promise对象
  4. IE 弹出框处理经验
  5. Docker保存修改后的镜像
  6. 开放源代码_如何使用开放源代码开展业务:热门阅读
  7. linux命令 查找包含指定字符串的文件
  8. hadoopsdk使用_Hadoop的一些基本操作
  9. Wireshark使用技巧详解
  10. 推荐 :小米用户画像实战(附48页PPT)
  11. 计算机电源(atx电源),电脑ATX电源各级电压标准
  12. 滴滴悬赏百万寻凶,机智网友支付宝钓鱼转账杀害空姐明珠疑凶
  13. Hibernate(6)——映射类型
  14. 做量化你需要知道的那些术语!(持续更新)
  15. Velodyne Lidar Inc.宣布与禾赛光电科技签订专利许可协议
  16. UI自动化之分层思想pom模式
  17. 云服务器的回收站在哪个文件夹,云主机无法从回收站删除解决办法
  18. R语言|根据列名提取/筛选列的两种方法
  19. 计算机综合症怎么治,小窍门防治电脑综合征
  20. iOS-AppStore 审核加速

热门文章

  1. [转]ASP.net(c#)生成条形码
  2. TFTP服务器在Cisco设备上的应用(上传、下载IOS)
  3. python 多线程Thread
  4. bzoj2440:[中山市选2011]完全平方数
  5. CodeForces413E Maze 2D
  6. spring cloud 学习(6) - zuul 微服务网关
  7. android Binder机制(一)架构设计
  8. WordPress实践:上传文件时提示“缺少临时文件夹”
  9. PHP、Smarty与jQuery Ajax 分页插件jquery.pager.js的使用
  10. pythontk界面显示函数中的变量值_简单易学,西门子触摸屏3种修改变量值的方法!博图Wincc V14组态...