【CJOJ P1365】最短路
来源:互联网 发布:领淘宝内部优惠券软件 编辑:程序博客网 时间:2024/06/03 14:11
http://oj.changjun.com.cn/problem/detail/pid/1365
Description
给出N个点,M条无向边的简单图,问所有点对之间的最短路。
Input
第1行两个正整数N,M(N<=100,M<=5000)
下面M行,每行3个正整数x, y, w,为一条连接顶点x与y的边权值为w。(x<=n,y<=n,w<=1000)
Output
包括N行,每行N个数,第i行第j个数为点i到点j的最短路,第i行第i个数应为0,数字之间空格隔开。
Sample Input
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
Sample Output
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吧!标准裸题。不解释了。直接上代码
#include<iostream>#include<cstdlib>#include<cstring>#include<vector>#include<cstdio>using namespace std;void Floyd(){ int n,m; int g[101][101]; cin>>n>>m; int a,b,c; for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) if(i==j)g[i][j]=0; else g[i][j]=99999999; for(int i=1;i<=m;++i) { cin>>a>>b>>c; g[a][b]=g[b][a]=c; } for(int k=1;k<=n;++k) for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) { if(g[i][j]>g[i][k]+g[k][j])g[i][j]=g[i][k]+g[k][j]; } for(int i=1;i<=n;++i) { for(int j=1;j<=n;++j) cout<<g[i][j]<<' ';cout<<endl; }}int main(){ Floyd(); return 0; }
0 0
- 【CJOJ P1365】最短路
- 最短路 & 次短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- UVA 11324 The Largest Clique(强连通+dp)
- [js点滴]JavaScript进度事件09
- js实现html表格导出到excel
- 欢迎使用CSDN-markdown编辑器
- 几个C/Cpp笔试面试题目
- 【CJOJ P1365】最短路
- Caffe:Message type "caffe.LayerParameter" has no field named "reshape_param".
- Service生命周期
- java---《深入理解java虚拟机》第二章【java内存区域与内存溢出异常】阅读笔记
- java String, StringBuffer,StringBuilder
- 【软考总结】——好事多磨
- ln命令介绍
- Cannot open /var/log/sa/sa23: No such file or directory
- 20、Spring MVC 之 Configuring