• 杭电 1874 畅通工程续


    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1874

      本题最短路问题,我用的是dijkstra算法,这题不难,但是一开始以为不会遇到重边的问题,所以WA了一次!

    #include <stdio.h>
    #define MAXN 200
    #define INF 100000
    int mat[MAXN][MAXN];
    int min[MAXN];
    void Dijkstra(int n, int s)
    {
        int v[MAXN], i, j, k;
        for( i = 0; i < n; i++ )
            v[i] = 0, min[i] = INF;
        for( min[s] = 0, j = 0; j < n; j++ )
        {
            for( k = -1, i = 0; i < n; i++ )
                if( (!v[i]) && ((k == -1)||(min[i] < min[k])) )
                    k = i;
            for( v[k] = 1, i = 0; i < n; i++ )
                if( (!v[i]) && (min[k] + mat[k][i] < min[i]) )
                     min[i] = min[k] + mat[k][i];
            
        }
    }
    int main()
    {
        int n, m, i, j, k, s, t, temp;
        while(scanf( "%d%d", &n,&m ) != EOF)
        {
            for( i = 0; i < n; i++ )
                for( j = 0; j < n; j++ )
                    mat[i][j] = INF;
            /*for( i = 0; i < n; i++ )
            {
                for( j = 0; j < n; j++ )
                    printf("%d ",mat[i][j]);
                printf("
    ");
            }
            printf("
    
    ");*/        for( k = 0; k < m; k++ )
            {
                scanf( "%d%d%d", &i, &j, &temp );
                if( temp < mat[i][j] )
                    mat[j][i] = mat[i][j] = temp;
            }
            /*for( i = 0; i < n; i++ )
            {
                for( j = 0; j < n; j++ )
                    printf("%d ",mat[i][j]);
                printf("
    ");
            }*/
            scanf( "%d%d", &s, &t );
            Dijkstra(n,s);
            /*for( i = 0; i < n; i++ )
            {
                printf("%d ",min[i]);
            }
            printf( "
    " );
            for( i = 0; i < n; i++ )
            {
                printf("%d ",pre[i]);
            }
            printf( "
    " );*/
            if( min[t] == INF )
                printf( "-1
    " );
            else
                printf("%d
    ",min[t]);
    
        }
        return 0;
    }
    View Code
  • 相关阅读:
    隐藏 阴影 定位 js语法与导入
    js 相关知识
    选择器 常用样式 布局
    前端
    数据库 备份
    SQLAlchemy 创建 增 删 改 查
    引擎 索引 日志查询 权限管理
    pysql
    数据库的操作
    Conv1*1
  • 原文地址:https://www.cnblogs.com/yizhanhaha/p/3225095.html
Copyright © 2020-2023  润新知