SDUTACM 图结构练习——最短路径
2016-08-15 20:13
267 查看
题目描述
给定一个带权无向图,求节点1到节点n的最短路径。输入
输入包含多组数据,格式如下。第一行包括两个整数n m,代表节点个数和边的个数。(n<=100)
剩下m行每行3个正整数a b c,代表节点a和节点b之间有一条边,权值为c。
输出
每组输出占一行,仅输出从1到n的最短路径权值。(保证最短路径存在)示例输入
3 2 1 2 1 1 3 1 1 0
示例输出
1 0
提示
#include<stdio.h> #include<stdlib.h> #define max 65535 int weight[110][110]; void main() { int m,n; while(scanf("%d%d",&m,&n)!=EOF) { int i,j; int k,u,v,w; for(i=1;i<=m;i++) { for(j=1;j<=m;j++) weight[i][j]=max; weight[i][i]=0; } for(i=1;i<=n;i++) { scanf("%d%d%d",&u,&v,&w); if(weight[u][v]>w) { weight[u][v]=w; weight[v][u]=w; } }
弗洛伊德算法: for(k=1;k<=m;k++) for(i=1;i<=m;i++) for(j=1;j<=m;j++) { if(weight[i][j]>(weight[i][k]+weight[k][j])) weight[i][j]=weight[i][k]+weight[k][j]; } printf("%d\n",weight[1][m]); } }
相关文章推荐
- sdutacm-图结构练习——最短路径
- sdut oj2143 图结构练习——最短路径
- 图结构练习——最短路径
- 图结构练习——最短路径
- 图结构练习——最短路径 floyd算法 SDUT2143
- [SDUT](2143)图结构练习——最短路径 ---单源最短路径(图)
- 图结构练习——最短路径
- 图结构练习——最短路径(floyd算法(弗洛伊德))
- 图结构练习——最短路径
- 【2143】图结构练习——最短路径 (Dijkstra算法)(SDUT)
- SDUT OJ 2143 图结构练习——最短路径
- 图结构练习——最短路径(Floyd算法)
- 图结构练习——最短路径 (Floyd算法)
- 【2143】图结构练习——最短路径 (Dijkstra算法)(SDUT)
- 图结构练习——最短路径
- SDUT2143 图结构练习——最短路径
- 图结构练习——最短路径
- 图结构练习——最短路径(dijkstra算法(迪杰斯拉特))
- 图结构练习——最短路径 oj
- SDUT 2143 - 图结构练习——最短路径(dijkstra+模板)