Hdu 2544 最短路

来源:互联网 发布:u盘安装linux系统 编辑:程序博客网 时间:2024/05/18 22:44

最基本的最短路问题

由于数据范围1<=n<=100

用n立方的floyed算法即可实现

以下为实现代码

#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int map[105][105];int m,n;int main(){while (scanf("%d%d",&n,&m)!=EOF)//输入 {if (n==0&&m==0){return 0;}memset(map,0x3f,sizeof(map));//将未连接的两个路口之间的距离最大化//防止取到未连接的两个路口 for (int i=1;i<=m;i++){int a;int b,c;scanf("%d%d%d",&a,&b,&c);map[a][b]=c;map[b][a]=c;//正反 }for (int k=1;k<=n;k++){for (int j=1;j<=n;j++){for (int i=1;i<=n;i++){if (map[k][i]+map[k][j]<map[i][j]){map[i][j]=map[i][k]+map[k][j]; //floyed算法 }}}}printf("%d\n",map[1][n]);}return 0;}
这道题提交时如果没有换行还会导致格式错误 

哭哭