题目:

提示:

Floyd最短路径算法实现(未测试):

//
//  main.cpp
//  Alg_Floyd_playgame
//
//  Created by wasdns on 16/11/19.
//  Copyright ? 2016年 wasdns. All rights reserved.
//  #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <string.h>
using namespace std;  #define endless 1000000001;  int Floydgh[5005][5005];  void Inigh(int n)
{  for (int i = 1; i <= n; i++)  {  Floydgh[i][i] = 0;  for (int j = 1; j <= n; j++)  {  if (i != j) {  Floydgh[i][j] = endless;  }  }  }
}  void Creatgh(int n, int m)
{  Inigh(n);  int i, u, v, w;  for (i = 1; i <= m; i++)  {  cin >> u >> v >> w;  Floydgh[u][v] = w;  Floydgh[v][u] = w;  }
}  void Alg_Floyd(int n)
{  int i, j, k;  for (k = 1; k <= n; k++)  {  for (i = 1; i <= n; i++)  {  for (j = 1; j <= n; j++)  {  int t = Floydgh[i][k] + Floydgh[k][j];  if (t < Floydgh[i][j]) {  Floydgh[i][j] = t;  Floydgh[j][i] = t;  }  }  }  }
}  int minjudge(int n)
{  int i, j;  int minlen = endless;  for (i = 1; i <= n; i++)  {  int cnt = 0;  for (j = 1; j <= n; j++)  {  cnt += Floydgh[i][j];  }  if (cnt < minlen) {  minlen = cnt;  }  }  return minlen;
}  int main()
{  int n, m;  cin >> n >> m;  Creatgh(n, m);  Alg_Floyd(n);  cout << minjudge(n) << endl;  return 0;
}

Prim生成树算法实现:

关于Prim算法,请参考我的另外一篇博客:hdoj-1233-还是畅通工程


//
//  main.cpp
//  Prim
//
//  Created by wasdns on 16/11/24.
//  Copyright © 2016年 wasdns. All rights reserved.
//#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <string>
#include <string.h>
#define maxn 10000005;
using namespace std;int Primgh[10000][10000];bool refer[10005];void Initial(int n, int m)
{int i, j;for (i = 1; i <= n; i++){refer[i] = false;for (j = 1; j <= n; j++){if (i == j) {Primgh[i][j] = 0;}else Primgh[i][j] = maxn;}}int u, v, w;for (i = 1; i <= m; i++){cin >> u >> v >> w;Primgh[u][v] = w;Primgh[v][u] = w;}
}int Prim_Alg(int n, int m)
{Initial(n, m);int i, j, k;int ans = 0;refer[1] = true;                    //起点为1for (i = 1; i <= n-1; i++){int minlen = maxn;int rcd = 1;for (j = 1; j <= n; j++){if (!refer[j]) continue;int len1 = maxn;int rcd1 = 1;for (k = 1; k <= n; k++){if (!refer[k]){if (Primgh[j][k] < len1) {len1 = Primgh[j][k];rcd1 = k;}}}if (len1 < minlen) {minlen = len1;rcd = rcd1;}}//char check = 'A'+rcd-1;//cout << "rcd: " << check << endl;//cout << "minlen: " << minlen << endl;refer[rcd] = true;rcd = 1;ans += minlen;}return ans;
}int main()
{int n, m;cin >> n >> m;cout << Prim_Alg(n, m) << endl;return 0;
}

测试样例:

/*eg1. Input:4 61 2 12 3 21 3 32 4 33 4 51 4 4Output:6eg2.Input:7 111 2 71 4 52 4 92 3 82 5 73 5 54 5 154 6 65 6 85 7 96 7 11Output:39*/

2016/11/24

DS实验题 Floyd最短路径 Prim最小生成树相关推荐

  1. DS实验题 融合软泥怪-2 Heap实现

    题目和STL实现:DS实验题 融合软泥怪-1 用堆实现优先队列 引言和堆的介绍摘自:Priority Queue(Heaps)--优先队列(堆) 引言: 优先队列是一个至少能够提供插入(Insert) ...

  2. DS实验题 Inversion

    题目: 解题过程: 第一次做这题的时候,很自然的想到了冒泡和选择,我交的代码是用选择写的.基本全WA(摊手). 贴上第一次的代码: // // main.cpp // sequenceschange ...

  3. DS实验题 击鼓传花

    题目: 代码1(数组实现): // // main.cpp // DS-击鼓传花 // // Created by wasdns on 16/11/9. // Copyright © 2016年 wa ...

  4. DS实验题 融合软泥怪-1

    题目 思路 很容易想到第一种做法,用Huffman算法,从森林中找出两个值最小的节点,合并再加入森林,在这个过程中不断记录. 但是每一次需要sort一遍,将最小的两个值节点置于头两个节点,最坏情况下复 ...

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

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

  6. dijkstra算法_Python实现图的经典DFS、BFS、Dijkstra、Floyd、Prim、Kruskal算法

    讲在前面的话,图的算法太多,理论知识肯定一篇文章讲不完,关于理论知识大家可以参考教材Sedgewick的<算法>或reference的链接,本文主要还是想在一篇文章中记录六种算法的Pyth ...

  7. dfs时间复杂度_Python实现图的经典DFS、BFS、Dijkstra、Floyd、Prim、Kruskal算法

    讲在前面的话,图的算法太多,理论知识肯定一篇文章讲不完,关于理论知识大家可以参考教材Sedgewick的<算法>或reference的链接,本文主要还是想在一篇文章中记录六种算法的Pyth ...

  8. 数据结构实验之图论九:最小生成树

    数据结构实验之图论九:最小生成树 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 有n个城市,其中有些城市之间可以修建公 ...

  9. 算法与数据结构实验题 10.23 寡人的难题

    算法与数据结构实验题 10.23 寡人的难题 ★实验任务 寡人心系天下为国为民,想要在历史中留下点痕迹,就必须要让国家强盛起来,正所谓想致富先修路,寡人觉得去修路,那些吃干饭的大臣给了寡人很多条要修的 ...

最新文章

  1. 面试离职理由_面试一个月都没有成功,是种什么样的神奇体验?
  2. 视频容器格式与编码格式简介
  3. Linux资料分享,强势来袭!
  4. html5 手机拍视频滤镜,用canvas实现图片滤镜效果附演示_html5教程技巧
  5. linux下无权限安装ffmpeg-4.1.3
  6. 小程序 switch 自定义_微信小程序自定义组件问题一:获取组件DOM元素
  7. Smart 3D 切块合并 使用S3C索引 excel表格法
  8. 程序员离职后跳槽到国企,每天主动加班到10点,结果试用期没过?
  9. 从零开发短视频电商 隐藏业务ID以及缩短业务链接
  10. Latex——数学符号大全
  11. VUE 中 keep-alive 的 --是什么-- 使用场景-- 作用-- 新增属性--动态组件--理解
  12. python-pandapower电力系统短路电流计算(算例3:探索一天的最佳电网运行方式))
  13. Android 安全防护
  14. 从事IT业一个8年老兵转行前的自我总结2——从《易经》说开来
  15. linux遇到nul字符,linux TXT文件操作 '^@ ' 'NUL' 符号乱码问题
  16. Node【初识Node】
  17. Linux系统如何安装Python?新手教程
  18. 大学毕业小总结以及感想
  19. HDU 1208(Pascal's Travels)
  20. O - 鸣人和佐助(BFS)

热门文章

  1. 【周末阅读】5G时代新型基础设施建设白皮书
  2. 中国信通院《新型智慧城市发展研究报告》
  3. 新一轮全球“太空竞赛”正上演 争夺几万亿美元大蛋糕
  4. AI手机报告 | 揭秘手机行业未来AI之路
  5. 杂谈 | 微软复兴,它与苹果竟有这么多相似之处!
  6. Gartner重磅发布近40页PPT,详解2017年十大战略技术趋势
  7. 我拍了拍 Redis,没想到被移出了群聊......
  8. 初级程序员常犯错误一览
  9. 使用 ftrace 调试 Linux 内核【转】
  10. cocos2d JS 自定义事件分发器(接收与传递数据) eventManager