HDU1874畅通工程续(Floyd算法)
来源:互联网 发布:linux 拷贝后重命名 编辑:程序博客网 时间:2024/05/18 02:19
简单的最短路径,给地图。再给两个点,求这两个点之间的最短路径。
直白的做法就是Floyd算法。时间复杂度比较高,但是做这道题目足够了。
这道题目有一个坑点,就是两个点之间可能有若干条路径,那么要求最短路径的时候,必然只会选择最短的一天。毕竟其他的效果都是一样。
直白的做法就是Floyd算法。时间复杂度比较高,但是做这道题目足够了。
这道题目有一个坑点,就是两个点之间可能有若干条路径,那么要求最短路径的时候,必然只会选择最短的一天。毕竟其他的效果都是一样。
所以在输入的时候就处理下,每次输入,判断一下,更新最小的路径。
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<functional>#define inf 100000000using namespace std;int n,m;int e[205][205];void init(){int i,j;for(i=0;i<n;i++){for(j=0;j<n;j++)if(i==j)e[i][j]=0;elsee[i][j]=inf;}}void Floyd(){int i,j,k;for(k=0;k<n;k++)for(i=0;i<n;i++)for(j=0;j<n;j++)if(e[i][j]>e[i][k]+e[k][j])e[i][j]=e[i][k]+e[k][j];}int main(){int i,t1,t2,t3,sta,ed;while(scanf("%d%d",&n,&m)!=EOF){init();for(i=1;i<=m;i++){scanf("%d%d%d",&t1,&t2,&t3);if(t3<e[t1][t2])e[t1][t2]=e[t2][t1]=t3;}scanf("%d%d",&sta,&ed);Floyd();if(e[sta][ed]>=inf)printf("-1\n");elseprintf("%d\n",e[sta][ed]);}}
阅读全文
0 0
- HDU1874畅通工程续(Floyd算法)
- HDU1874-畅通工程续(Dijkstra算法+Floyd算法)
- hdu1874 畅通工程续 (floyd)
- hdu1874畅通工程续 --hdu2544最短路(Floyd)
- hdu1874 畅通工程续(Dijkstra/Floyd/Bellman-Ford/SPFA)
- 畅通工程续(hdu1874,floyd最短路)
- HDU1874:畅通工程续(Dijkstra/Floyd/SPFA)
- HDU1874畅通工程续 dijkstra&&floyd
- HDU1874 畅通工程续 (dijkstra,floyd)
- (hdu1874)畅通工程续(dijkstra算法)
- HDU1874畅通工程续 (Dijkstra算法求最短路)
- hdu1874 畅通工程续 单源最短路径(SSSP)Dijkstra算法
- hdu1874 畅通工程续(Dijkstra算法,单源最短路)
- hdu1874畅通工程续【最短路dijkstra&&SPFA&&floyd】
- hdu1874 畅通工程续 floyd入门题学习
- hdu1874畅通工程续
- hdu1874 畅通工程续
- HDU1874 畅通工程续
- System.Timers.Timer重置
- Restful与webService区别
- weblogic92安装
- SpringCloud--服务的注册与发现(Eureka)
- PHP MySQL Where 子句怎么用?
- HDU1874畅通工程续(Floyd算法)
- 如何高效使用Markdown编辑器
- 分布式文件系统:原理、问题与方法
- 生产模式下启动weblogic server无需用户名口令
- Weblogic Server Console启动免输入用户名、口令地址
- UML学习(一)-----用例图
- Unity 打包IOS平台错误
- 用命令行停止Weblogic Server
- (hdu6092) 2017杭电多校联赛第5场-Rikka with Subset 动态规划