zoukankan      html  css  js  c++  java
  • floyd 算法

    #include<stdio.h>
    int n,m,map[124][124];
    int inf = 0x7fffffff;
    void floyd(  )
    {
         for( int i = 1; i <= n; ++i )
              for( int j = 1; j <= n; ++j )
                   for( int k = 1; k <= n; ++k )
                        if( map[i][j] != inf && map[i][k] != inf )
                            if( map[i][j] + map[i][k] < map[j][k] )
                                map[j][k] = map[i][j] + map[i][k];
     }
    int main( )
    {
        while( scanf( "%d%d",&n,&m ),n&&m )
        {
               for( int i = 1; i <= n; ++i )
                    for( int j = 1; j <= n; ++j )
                         map[i][j] = inf;
               for( int i = 1; i <= m; ++i )
               {
                    int x,y,v;
                    scanf( "%d%d%d",&x,&y,&v );
                    if( map[x][y] > v )
                        map[x][y] = map[y][x] = v;
                    }
               floyd(  );
               printf( "%d\n",map[1][n] );
               }
        return 0;
    }
  • 相关阅读:
    Swift
    Swift
    Swift
    Swift
    Swift
    nineOldAnimation 应用
    Android 编程下 Touch 事件的分发和消费机制
    用Gradle 构建android程序
    CygWin模拟Linux环境进行Ant批量打包
    UML类图与类的关系详解
  • 原文地址:https://www.cnblogs.com/QQbai/p/2135273.html
Copyright © 2011-2022 走看看