【HDU2544】记第一次写Floyd
来源:互联网 发布:腾讯股票数据接口api 编辑:程序博客网 时间:2024/05/16 18:16
#include <iostream>#include <stdio.h>using namespace std;#define MAX 105#define INF 9999999int map[MAX][MAX];int n,m;void init(){int i,j;for(i=0;i<MAX;i++){for(j=0;j<MAX;j++){if(i==j)map[i][j]=0;elsemap[i][j]=map[j][i]=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(map[i][j]>map[i][k]+map[k][j])map[i][j]=map[i][k]+map[k][j];}}}}int main(){int i;while(scanf("%d %d",&n,&m)){if(n==0 || m==0)return 0;init();for(i=0;i<m;i++){int x,y;int price;cin>>x>>y>>price;x--,y--;if(map[x][y]>price)map[x][y]=map[y][x]=price;}floyd();cout<<map[0][n-1]<<endl;}return 0;}
代码本身还是不难,Floyd实现只是三个循环,但这道题需要注意的一些小问题让我WA了不少次。
1.初始化,MAX和INF这两个预编译参数最好分开来写。
2.对Map的初始化需要考虑对角线上的元素为零,其余为INF,此外,每次初始化循环上限应为MAX,而非输入的顶点数。
3.input过程中,根据输入时刻更新Map[x][y]的值(即cin>>后的if语句)
0 0
- 【HDU2544】记第一次写Floyd
- //floyd算法hdu2544
- Floyd 最短路 hdu1869 hdu2544
- hdu2544最短路(floyd)(dijkstra)
- HDU2544 最短路 Floyd实现
- hdu2544 最短路 (floyd)
- hdu2544最短路 Floyd求最短路
- 最短路(hdu2544,floyd最短路)
- hdu2544 最短路(Floyd,Dijkstra算法)
- HDU2544---最短路(dijkstra&&floyd&&spfa)
- hdu2544 最短路(floyd) 解题报告
- HDU2544 最短路 + 裸 + Floyd + 邻接矩阵
- HDU2544 最短路(floyd dijkstra)
- HDU2544 最短路——Floyd
- 记第一次写博客~~~
- 记第一次写博客
- 记第一次写博
- 记第一次写博客
- POJ 1961 Period(KMP)
- [Linux内存]vmalloc学习笔记
- java算法
- 黑马程序员-- 面向对象VII--
- POJ 2109 Power of Cryptography
- 【HDU2544】记第一次写Floyd
- Java中枚举类的使用总结
- RTSP服务器实例live555源代码分析
- 一个伪球迷的世界杯记忆
- flash - AVM2 指令参考
- 以太网RJ45 针脚定义
- 新人职场要淡定 情商比智商更重要
- js报TypeError $(...) is null错误,jquery失效的原因及解决办法
- [Java 19 网络编程 ] 未仔细学