hdu 2544 最短路(floyd模板题||Dijkstra模板题)
来源:互联网 发布:aes加密java代码 编辑:程序博客网 时间:2024/05/29 23:22
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544
题目大意:中文,十分明确不再重复
思路:floyd模板,数据合理最大,时间复杂度(n^3)
Dijkstra模板,时间复杂度(n^2)(这里我就不详细的讲这两个算法了,不会的可以通过去看数据结构书或者去找博客~
奇怪的是时间都是31ms
Dijkstra
floyd
//floyd#include<cstdio>#include<cstdlib>#include<cmath>#include<cstring>#include<algorithm>#include<iostream>#include<set>const int maxn = 30000;using namespace std;int map[200][200];int main(){ int n,m,a,b,c; while(~scanf("%d%d",&n,&m),n+m){ memset(map,maxn,sizeof(map)); for(int i = 0 ; i < m ;i++){ scanf("%d%d%d",&a,&b,&c); map[a][b]=map[b][a]=c; } for(int k = 1; k <= n ;k++) for(int i =1; i <= n; i++) for(int j = 1; j <= n ; j++) map[i][j] = min(map[i][j] , map[i][k] + map[k][j]); printf("%d\n",map[1][n]); } return 0;}
//Dijkstra#include<cstdio>#include<cstdlib>#include<cmath>#include<cstring>#include<algorithm>#include<iostream>#include<set>#include<stack>#include<ctime>#include<queue>#define LOCAL#define mst(a,b) memset(a,b,sizeof(a))const int INF = 0x3f3f3f3f;const int maxn = 30000;using namespace std;int map[200][200] , p[210] , d[210];//d数组存放的是v0到i的最短路径长,p数组存放的是这个节点最短路径时的前驱void Dijkstra(int v0 , int n){ int v , k , min; int flag[210]; mst(flag,0);//标记有没有访问过这个点 for(int i = 1 ; i <= n ; i++)//v0到i的距离 d[i] = map[v0][i]; d[v0] = v0; flag[v0] = 1; for(int i = 2 ; i <= n ; i++){//求得v0到i的最短路径 min = INF; for(int w = 1 ; w <= n ; w++)//寻找离v0最近的点 if(!flag[w]& d[w] < min){ k = w; min = d[w]; } flag[k] = 1;//找到最近的点,并标志已经访问过 for(int w = 1 ; w <= n ; w++)//修正最短路,并记录前驱 if(!flag[w] & (min + map[k][w] < d[w])){ d[w] = min + map[k][w]; p[w] = k; } } }int main(){ /*#ifdef local freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); #endif*/ int n,m,a,b,c; while(~scanf("%d%d",&n,&m),n+m){ mst(map,maxn); mst(p,0); for(int i = 0 ; i < m ;i++){ scanf("%d%d%d",&a,&b,&c); map[a][b]=map[b][a]=c; } Dijkstra(1,n); printf("%d\n",d[n]); } return 0;}
阅读全文
0 0
- hdu 2544 最短路(floyd模板题||Dijkstra模板题)
- hdu-2544-最短路(Dijkstra + Dijkstra优先队列 + Bellman-ford + SPFA +Floyd) 纯模板题
- HDU 2544最短路dijkstra模板题
- Hdu 2544 最短路 (Dijkstra+SPFA+Floyd模板)
- hdu 2544 (最短路 Dijkstra模板题)
- HDOJ2544 最短路(Dijkstra,floyd,模板)
- hdu 2544 最短路(Dijkstra模板)
- hduoj 2544 最短路(模板 dijkstra + floyd )
- HDU-2544 最短路(Dijkstra算法求无向图最短路模板题)
- HDU 2544 最短路( Dijkstra模板题/SPFA初学)
- HDU 2544 最短路 模板题 SPFA Dijkstra
- 【hdu 2544】最短路 (dijkstra算法模板题)
- hdu2544最短路(Dijkstra模板题)
- 最短路模板 Dijkstra+Floyd+SPFA
- [模板]最短路 (Floyd, Spfa, Dijkstra,
- 最短路模板 floyd+dijkstra+spfa
- ACM_最短路模板(SPFA,Dijkstra,Floyd)
- hdu 2544 最短路 (dijkstra,floyd)
- CodeForces 799B (B) T-shirt buying
- 正则表达式在线测试(生成)工具
- My First Blog
- maven如何导入jar 以及本地仓库设置然后jar包导入本地仓库
- thinkphp 框架中Class '?' not found致命错误的原因以及解决方法
- hdu 2544 最短路(floyd模板题||Dijkstra模板题)
- 人工智能、机器学习和深度学习的区别与联系
- FineReport报表和FineBI的区别
- 我是IT程序猿,为自己证身......
- hadoop的搭建
- 机器学习分类算法之k-近邻算法
- 使用WebView加载网页时,获取网页数据
- 数据分析Python工具Jupter Notebook快速部署
- View的自定义属性和位置关系