Floyd-Warshall
Description
第一行四个数为n,m,n表示顶点个数,m表示边的条数。
接下来m行,每一行有三个数t1、t2 和t3,表示顶点t1到顶点t2的路程是t3。请注意这些t1->t2是单向的。
Output
- 输出一个n*n的矩阵,第n行第n列表示定点n到n的距离。每一行两个数间由空格隔开
Sample Input
- 5 8
- 1 2 2
- 2 3 3
- 3 4 4
- 4 5 5
- 5 3 3
- 3 1 4
- 2 5 7
- 1 5 10
Sample Output
- 0 2 5 9 9
- 7 0 3 7 7
- 4 6 0 4 9
- 12 14 8 0 5
- 7 9 3 7 0
More Info
- 输出结果每行的最后一个数字后不需要留空格哦~
- #include<iostream>
- //#include<fstream>
- #define inf 0x3f3f3f3f
- using namespace std;
- int m,n;
- int e[][];
- int main(){
- // fstream file("haha.txt");
- // file>>n>>m;
- cin>>n>>m;
- for(int i=;i<=n;i++){//初始化
- for(int j=;j<=n;j++){
- if(i==j)
- e[i][j]=;
- else
- e[i][j]=inf;
- }
- }
- for(int i=;i<=m;i++){//录入
- int a,b,c;
- cin>>a>>b>>c;
- e[a][b]=c;
- }
- for(int k=;k<=n;k++){//弗洛伊德核心算法
- for(int i=;i<=n;i++){
- for(int j=;j<=n;j++){
- if(e[i][j]>e[i][k]+e[k][j])
- e[i][j]=e[i][k]+e[k][j];
- }
- }
- }
- for(int i=;i<=n;i++){//输出
- for(int j=;j<=n;j++){
- cout<<e[i][j];
- if(j!=n)
- cout<<" ";
- }
- cout<<endl;
- }
- return ;
- }
Floyd-Warshall的更多相关文章
- 图论之最短路径(1)——Floyd Warshall & Dijkstra算法
开始图论学习的第二部分:最短路径. 由于知识储备还不充足,暂时不使用邻接表的方法来计算. 最短路径主要分为两部分:多源最短路径和单源最短路径问题 多源最短路径: 介绍最简单的Floyd Warshal ...
- Floyd —Warshall(最短路及其他用法详解)
一.多元最短路求法 多元都求出来了,单源的肯定也能求. 思想是动态规划的思想:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点X到B.所以,我们假设Dis(A ...
- 图论学习笔记·$Floyd$ $Warshall$
对于图论--虽然本蒟蒻也才入门--于是有了这篇学习笔记\(qwq\) 一般我们对于最短路的处理,本蒟蒻之前都是通过构建二维数组的方式然后对每两个点进行1次深度或者广度优先搜索,即一共进行\(n\)^2 ...
- Floyd—Warshall算法
我们用DP来求解任意两点间的最短路问题 首先定义状态:d[k][i][k]表示使用顶点1~k,i,j的情况下,i到j的最短路径 (d[0][i][j]表示只使用i和j,因此d[0][i][j] = c ...
- Floyd 算法的动态规划本质
[转载自:http://www.cnblogs.com/chenying99/p/3932877.html] Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(A ...
- 探求Floyd算法的动态规划本质(转)
---恢复内容开始--- Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(All Paris Shortest Paths,APSP)的算法.从表面上粗看,Fl ...
- (floyd)佛洛伊德算法
Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(All Paris Shortest Paths,APSP)的算法.从表面上粗看,Floyd算法是一个非常简单的 ...
- 探求Floyd算法的动态规划本质
Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(All Paris Shortest Paths,APSP)的算法.从表面上粗看,Floyd算法是一个非常简单的 ...
- Floyd算法简单实现(C++)
图的最短路径问题主要包括三种算法: (1)Dijkstra (没有负权边的单源最短路径) (2)Floyed (多源最短路径) (3)Bellman (含有负权边的单源最短路径) 本文主要讲使用C++ ...
- 1199 Problem B: 大小关系
求有限集传递闭包的 Floyd Warshall 算法(矩阵实现) 其实就三重循环.zzuoj 1199 题 链接 http://acm.zzu.edu.cn:8000/problem.php?id= ...
随机推荐
- [Codechef TASTR] Level of Difference - 后缀数组,容斥原理
[Codechef TASTR] Level of Difference Description 给定两个字符串,求恰好在一个字符串中出现过的本质不同的子串数量. Solution 设 \(U(S)\ ...
- 一个仿tp5分页组件的实现
样式: a{ text-decoration: none; color: inherit; } .out-cp{ width:100%; text-align: center; } .c-page{ ...
- hadoop中遇到的各种错误记录
hadoop中namenode无法启动 转载链接:https://blog.csdn.net/love666666shen/article/details/74350358 使用pi ...
- springboot11(springboot-redis)
一.Redis集群简介 1.RedisCluster概念 Redis的分布式解决方案,在3.0版本后推出的方案,有效地解决了Redis分布式的需求,当一个服务宕机可以快速的切换到另外一个服务.redi ...
- util之ArrayList
Java之ArrayList 方法: add(o: E): void 在list的末尾添加一个元素o add(index: int, o: E): void 在指定的index处插入元素o clear ...
- 2019-08-02 纪中NOIP模拟B组
T1 [JZOJ1420] 佳肴 题目描述 佳肴就是非常美味的菜的意思,佳肴最关键的是选择好原料. 现在有N种原料,每种原料都有酸度S和苦度B两个属性,当选择多种原料时,总酸度为每种原料的酸度之积,总 ...
- jdk之java.lang.Integer源码理解
基本数据类型的包装类java.lang.Integer是我们频繁使用的一个系统类,那么通过一个示例反应出的几个问题来深入理解一下此类的源码. 需求:实现Integer类型的两个数值交换. packag ...
- mybatis(六):设计模式 - 建造者模式
- rancher2中文文档地址
rancher2中文文档地址 待办 https://docs.rancher.cn/
- 每天进步一点点------Allegro 布线完成后如何修改线宽
一.如果要改变整个一条导线的宽度 1.在find栏里选择Cline; 2.在PCB中选择要改的导线,点击右键,选择Change Width 3.在对话框中输入你想要的线宽 3.如果要改变整个导线 ...