问题描述:

给出N个点,M条无向边的简单图,问所有点对之间的最短路。

数据输入:

第1行两个正整数N,M(N<=100,M<=5000)

下面M行,每行3个正整数x, y, w,为一条连接顶点x与y的边权值为w。(x<=n,y<=n,w<=1000)

数据输出:

包括N行,每行N个数,第i行第j个数为点i到点j的最短路,第i行第i个数应为0,数字之间空格隔开。

样例输入:

5 10

3 2 1

2 4 7

5 3 4

4 1 2

5 1 8

3 4 10

5 4 9

2 5 2

1 2 1

3 1 10

样例输出:

0 1 2 2 3

1 0 1 3 2

2 1 0 4 3

2 3 4 0 5

3 2 3 5 0

【题解】

求任意两点之间的最短路径。只要用floyd算法就能实现。

然后一开始置初值w[i][j]的时候。

对于输入的x,y,z只有在w[x][y] > z时才更新w[x][y]为z。

这样保证输入的数据设置的w[x][y]是x到y的最短距离。

【代码】

#include <cstdio>
#include <cstring> int n, m,w[101][101]; void input_data()
{
memset(w, 127 / 3, sizeof(w)); //这是一个很大的接近210000000的数字把它除3防止溢出
scanf("%d%d", &n, &m);
for (int i = 1; i <= m; i++) //输入 m条边
{
int x,y,z;
scanf("%d%d%d", &x, &y, &z);
if (w[x][y] > z) //如果x,y之间的距离更短了则更新
{
w[x][y] = z;
w[y][x] = z;
}
}
} void get_ans()
{
for (int i = 1; i <= n; i++) //i到i的距离设置为0
w[i][i] = 0;
for (int k = 1; k <= n; k++) //用floyd求任意两点之间的距离。
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
if (w[i][j] > w[i][k] + w[k][j])
w[i][j] = w[i][k] + w[k][j];
} void output_ans()
{
for (int i = 1; i <= n; i++) //用邻接矩阵的方式输出任意两点之间的距离即可。
{
for (int j = 1; j <= n - 1; j++)
printf("%d ", w[i][j]);
printf("%d\n", w[i][n]);
}
} int main()
{
input_data();
get_ans();
output_ans();
return 0;
}

【????】最短路(short)的更多相关文章

  1. 「2018-12-02模拟赛」T1 最短路 解题报告

    1.最短路(short.pas/cpp/in/out) 问题描述: 小 C 终于被小 X 感动了,于是决定与他看电影,然而小 X 距离电影院非常远,现在假设 每条道路需要花费小 X 的时间为 1,由于 ...

  2. PTF在PET上印刷線路的注意事項

    PTF: Polymer Thick Film (聚合厚模),維基的解釋 PET: Polyethylene terephthalate (聚乙烯對苯二甲酸酯),維基的解釋 就如同大家所知道的,相較於 ...

  3. C#图解教程 第八章 表达式和运算符

    表达式和运算符 表达式字面量 整数字面量实数字面量字符字面量字符串字面量 求值顺序 优先级结合性 简单算术运算符求余运算符关系比较运算符和相等比较运算符递增运算符和递减运算符条件逻辑运算符逻辑运算符移 ...

  4. (54)Wangdao.com第七天_JavaScript 运算符

    JavaScript 运算符,也叫操作符 对一个或者多个值进行运算,都是会返回结果的. 比如: typeof    返回一个值的类型,返回值类型是字符串. 隐式类型转换: 任意值 = 任意值 + &q ...

  5. javascript(六)运算符

    运算符概述 JavaScript中的运算符用于算术表达式. 比较表达式. 逻辑表达式. 赋值表达式等.需要注意的是, 大多数运算符都是由标点符号表示的, 比如 "+" 和" ...

  6. 游戏引擎架构 (Jason Gregory 著)

    第一部分 基础 第1章 导论 (已看) 第2章 专业工具 (已看) 第3章 游戏软件工程基础 (已看) 第4章 游戏所需的三维数学 (已看) 第二部分 低阶引擎系统 第5章 游戏支持系统 (已看) 第 ...

  7. Use default arguments instead of short circuiting or conditionals使用默认实参代替短路和条件

  8. 求次短路 codevs 1269 匈牙利游戏

    codevs 1269 匈牙利游戏 2012年CCC加拿大高中生信息学奥赛  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Descriptio ...

  9. 【wikioi】1269 匈牙利游戏(次短路+spfa)

    http://www.wikioi.com/problem/1269/ 噗,想不到.. 次短路就是在松弛的时候做下手脚. 设d1为最短路,d2为次短路 有 d1[v]>d1[u]+w(u, v) ...

随机推荐

  1. Xcode7 的两个小坑

    Xcode7 还在 beta.时不时崩一下什么的倒也是预料之中的事.没料到的是之前用着好好的,今天升完 El Capitan 之后,模拟器竟然不见了,设备倒是在 schema 栏右边里能看到.只是注明 ...

  2. mmx-编译脚本

    脚本目录位置 /home/zhangshuli/git2/vanzo_team/xulei/Mmx.py 在-/bin目录下,链接Mmx.py ln -sf ~/git2/vanzo_team/xul ...

  3. 97.TCP通信

    运行截图: 客户端 创建通信套接字 //通信套接字,用于创建TCP连接 SOCKET socket_send; 创建tcp通信 //创建tcp通信 socket_send = socket(AF_IN ...

  4. Java exception handling best practices--转载

    原文地址:http://howtodoinjava.com/2013/04/04/java-exception-handling-best-practices/ This post is anothe ...

  5. 分析器错误消息: 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分

    关于错误提示:此实现不是 Windows 平台 FIPS 验证的加密算法的一部分的解决方案 不知怎么的,每次Win10升级后相应的注册器都恢复默认了,当我运行08版的asp项目时会报这个错. vs上的 ...

  6. windows CE项目开发

    软件列表 1.Windows mobile 设备中心 2.Microsoft visual Studio 2008 3.串口调试工具(sscom42.exe) 4.Wince 6.0模拟器 5.vir ...

  7. iOS_04_数据类型、常量、变量

    一.数据 1.什么是数据 * 生活中时时刻刻都在跟数据打交道,比如体重数据.血压数据.股价数据等.在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据,图片数据,视频数据,还有聊天QQ产生的文 ...

  8. 资源下载https://msdn.itellyou.cn/

    资源下载https://msdn.itellyou.cn/  迅雷

  9. ElasticSearch 2.4

    ES是一个基于Lucene的分布式全文搜索服务器,和SQL Server的全文索引(Fulltext Index)有点类似,都是基于分词和分段的全文搜索引擎,具有分词,同义词,词干查询的功能,但是ES ...

  10. 【3005】拦截导弹问题(noip1999)

    Time Limit: 3 second Memory Limit: 2 MB 某国为了防御帝国的导弹袭击,开发出一种导弹拦截系统,但是这种拦截系统有一个缺陷:虽然他的第一发炮弹能达到任意的高度,但是 ...