题目1 : 最小生成树一·Prim算法

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

最近,小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>
#include <iostream>
#include <string>
#include <algorithm>
#define INF 999999999
#define N 1001 using namespace std; int map[N][N];
bool vis[N];
int dis[N];
int n, sum; void prim()
{
sum=0; //最小生成树的权值和初始化0
int mm;
int i, j;
memset(vis, false, sizeof(vis));
for(i=0; i<n; i++)
{
dis[i]=map[0][i];
}
vis[0]=true;
int pos; for(i=0; i<n-1; i++)
{
mm=INF;
for(j=0; j<n; j++)
{
if(vis[j]==false && dis[j]<mm)
{
mm=dis[j];
pos=j;
}
}
sum+=mm;
vis[pos]=true;
for(j=0; j<n; j++)
{
if(vis[j]==false && dis[j]>map[j][pos] )
{
dis[j]=map[j][pos];
}
}
}
printf("%d\n", sum );
} int main()
{
int i, j;
scanf("%d", &n); for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
scanf("%d", &map[i][j] );
}
}
prim(); return 0;
}

最新文章

  1. Centos7 关闭防火墙
  2. Android基础总结(四)
  3. 长时间停留在calculating requirements and dependencies 解决方案
  4. init.php 建立自己的前端共享文件
  5. Chapter7: question 49 - 50
  6. android 常用小功能(第二版)
  7. Python函数解析
  8. python为什么有私有方法和变量
  9. IntelliJ IDEA使用总结篇
  10. Bootstrap简易使用指南
  11. 西安Uber优步司机奖励政策(2月1日~2月7日)
  12. ubuntu 安装配置JDK
  13. javascript 高级程序设计(二)-在html中使用javascript
  14. 文章3说话 微信商城云server创建后台
  15. bootstrap导航条+模态对话框+分页样式
  16. 《Shazam It! Music Recognition Algorithms, Fingerprinting, and Processing》译文
  17. Elasticsearch结构化搜索_在案例中实战使用term filter来搜索数据
  18. 第十四节: EF的三种模式(四) 之 原生正宗的 CodeFirst模式的默认约定
  19. 有关wkwebview和UIwebview获取html中的标签方法
  20. 2017-2018-2 20165234 实验四《Android程序设计》实验报告

热门文章

  1. java.util.ResourceBundle 用法小介
  2. spring 找不到applicationContext.xml解决方法
  3. 标准C程序设计七---31
  4. 【转】3年PHPer的面试总结
  5. android中自定义下拉框(转)
  6. go gin框架 static 静态文件
  7. Codeforces 848B Rooter&#39;s Song(分类+模拟)
  8. 洛谷 P1503鬼子进村
  9. OO第三单元作业小结
  10. UNIDAC不能识别CLIENTDATASET的TSINGLEFIELD