Description

  1.  

第一行四个数为n,m,n表示顶点个数,m表示边的条数。

接下来m行,每一行有三个数t1、t2 和t3,表示顶点t1到顶点t2的路程是t3。请注意这些t1->t2是单向的。

  1.  

Output

  1.  
  1. 输出一个n*n的矩阵,第n行第n列表示定点nn的距离。每一行两个数间由空格隔开
  1.  

Sample Input

  1.  
  1. 5 8
  2. 1 2 2
  3. 2 3 3
  4. 3 4 4
  5. 4 5 5
  6. 5 3 3
  7. 3 1 4
  8. 2 5 7
  9. 1 5 10
  1.  

Sample Output

  1.  
  1. 0 2 5 9 9
  2. 7 0 3 7 7
  3. 4 6 0 4 9
  4. 12 14 8 0 5
  5. 7 9 3 7 0
  1.  

More Info

  1.  
  1. 输出结果每行的最后一个数字后不需要留空格哦~
  1. #include<iostream>
  2. //#include<fstream>
  3. #define inf 0x3f3f3f3f
  4. using namespace std;
  5. int m,n;
  6. int e[][];
  7. int main(){
  8. // fstream file("haha.txt");
  9. // file>>n>>m;
  10. cin>>n>>m;
  11. for(int i=;i<=n;i++){//初始化
  12. for(int j=;j<=n;j++){
  13. if(i==j)
  14. e[i][j]=;
  15. else
  16. e[i][j]=inf;
  17. }
  18. }
  19. for(int i=;i<=m;i++){//录入
  20. int a,b,c;
  21. cin>>a>>b>>c;
  22. e[a][b]=c;
  23. }
  24. for(int k=;k<=n;k++){//弗洛伊德核心算法
  25. for(int i=;i<=n;i++){
  26. for(int j=;j<=n;j++){
  27. if(e[i][j]>e[i][k]+e[k][j])
  28. e[i][j]=e[i][k]+e[k][j];
  29. }
  30. }
  31. }
  32. for(int i=;i<=n;i++){//输出
  33. for(int j=;j<=n;j++){
  34. cout<<e[i][j];
  35. if(j!=n)
  36. cout<<" ";
  37. }
  38. cout<<endl;
  39. }
  40. return ;
  41. }
  1.  
  1.  

Floyd-Warshall的更多相关文章

  1. 图论之最短路径(1)——Floyd Warshall & Dijkstra算法

    开始图论学习的第二部分:最短路径. 由于知识储备还不充足,暂时不使用邻接表的方法来计算. 最短路径主要分为两部分:多源最短路径和单源最短路径问题 多源最短路径: 介绍最简单的Floyd Warshal ...

  2. Floyd —Warshall(最短路及其他用法详解)

    一.多元最短路求法 多元都求出来了,单源的肯定也能求. 思想是动态规划的思想:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点X到B.所以,我们假设Dis(A ...

  3. 图论学习笔记·$Floyd$ $Warshall$

    对于图论--虽然本蒟蒻也才入门--于是有了这篇学习笔记\(qwq\) 一般我们对于最短路的处理,本蒟蒻之前都是通过构建二维数组的方式然后对每两个点进行1次深度或者广度优先搜索,即一共进行\(n\)^2 ...

  4. Floyd—Warshall算法

    我们用DP来求解任意两点间的最短路问题 首先定义状态:d[k][i][k]表示使用顶点1~k,i,j的情况下,i到j的最短路径 (d[0][i][j]表示只使用i和j,因此d[0][i][j] = c ...

  5. Floyd 算法的动态规划本质

    [转载自:http://www.cnblogs.com/chenying99/p/3932877.html] Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(A ...

  6. 探求Floyd算法的动态规划本质(转)

    ---恢复内容开始--- Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(All Paris Shortest Paths,APSP)的算法.从表面上粗看,Fl ...

  7. (floyd)佛洛伊德算法

    Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(All Paris Shortest Paths,APSP)的算法.从表面上粗看,Floyd算法是一个非常简单的 ...

  8. 探求Floyd算法的动态规划本质

    Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(All Paris Shortest Paths,APSP)的算法.从表面上粗看,Floyd算法是一个非常简单的 ...

  9. Floyd算法简单实现(C++)

    图的最短路径问题主要包括三种算法: (1)Dijkstra (没有负权边的单源最短路径) (2)Floyed (多源最短路径) (3)Bellman (含有负权边的单源最短路径) 本文主要讲使用C++ ...

  10. 1199 Problem B: 大小关系

    求有限集传递闭包的 Floyd Warshall 算法(矩阵实现) 其实就三重循环.zzuoj 1199 题 链接 http://acm.zzu.edu.cn:8000/problem.php?id= ...

随机推荐

  1. [Codechef TASTR] Level of Difference - 后缀数组,容斥原理

    [Codechef TASTR] Level of Difference Description 给定两个字符串,求恰好在一个字符串中出现过的本质不同的子串数量. Solution 设 \(U(S)\ ...

  2. 一个仿tp5分页组件的实现

    样式: a{ text-decoration: none; color: inherit; } .out-cp{ width:100%; text-align: center; } .c-page{ ...

  3. hadoop中遇到的各种错误记录

    hadoop中namenode无法启动          转载链接:https://blog.csdn.net/love666666shen/article/details/74350358 使用pi ...

  4. springboot11(springboot-redis)

    一.Redis集群简介 1.RedisCluster概念 Redis的分布式解决方案,在3.0版本后推出的方案,有效地解决了Redis分布式的需求,当一个服务宕机可以快速的切换到另外一个服务.redi ...

  5. util之ArrayList

    Java之ArrayList 方法: add(o: E): void 在list的末尾添加一个元素o add(index: int, o: E): void 在指定的index处插入元素o clear ...

  6. 2019-08-02 纪中NOIP模拟B组

    T1 [JZOJ1420] 佳肴 题目描述 佳肴就是非常美味的菜的意思,佳肴最关键的是选择好原料. 现在有N种原料,每种原料都有酸度S和苦度B两个属性,当选择多种原料时,总酸度为每种原料的酸度之积,总 ...

  7. jdk之java.lang.Integer源码理解

    基本数据类型的包装类java.lang.Integer是我们频繁使用的一个系统类,那么通过一个示例反应出的几个问题来深入理解一下此类的源码. 需求:实现Integer类型的两个数值交换. packag ...

  8. mybatis(六):设计模式 - 建造者模式

  9. rancher2中文文档地址

    rancher2中文文档地址 待办 https://docs.rancher.cn/

  10. 每天进步一点点------Allegro 布线完成后如何修改线宽

    一.如果要改变整个一条导线的宽度 1.在find栏里选择Cline; 2.在PCB中选择要改的导线,点击右键,选择Change Width    3.在对话框中输入你想要的线宽 3.如果要改变整个导线 ...