码迷,mamicode.com
首页 > 编程语言 > 详细

Floyed算法c语言实现

时间:2017-04-15 23:49:09      阅读:367      评论:0      收藏:0      [点我收藏+]

标签:++   实现   define   算法   style   max   span   int   font   

#include<stdio.h>
#include<stdlib.h>
#define max 1000000000

int d[1000][1000],path[1000][1000];
int main()
{
    int i,j,k,m,n;
    int x,y,z;
    scanf("%d%d",&n,&m);

    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++){
            d[i][j]=max;
            path[i][j]=j;
    }

    for(i=1;i<=m;i++) {
            scanf("%d%d%d",&x,&y,&z);
            d[x][y]=z;
            d[y][x]=z;
    }

    for(k=1;k<=n;k++)
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++) {
                if(d[i][k]+d[k][j]<d[i][j]) {
                    d[i][j]=d[i][k]+d[k][j];
                    path[i][j]=path[i][k];
                }
            }
   /* for(i=1;i<=n;i++)
        for(j=1;j<=i;j++)
          if (i!=j) printf("%d->%d:%d\n",i,j,d[i][j]);*/
    int f, en;
    scanf("%d%d",&f,&en);
    int ans = 0,p;
    while (f!=en) {
        printf("%d->",f);
        p = path[f][en];
        ans += d[f][p];
        f=path[f][en];
    }
    printf("%d\n%d",en,ans);
    return 0;
}/*
9 18
1 2 1
1 3 4
1 4 5
1 5 6
2 6 7
3 6 5
3 7 2
4 7 4
4 8 7
5 8 6
6 9 5
7 9 4
8 9 1
2 3 2
3 4 4
4 5 3
6 7 4
7 8 2
1 9*/
最短路为8

Floyed算法c语言实现

标签:++   实现   define   算法   style   max   span   int   font   

原文地址:http://www.cnblogs.com/--lr/p/6716309.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!