zoukankan      html  css  js  c++  java
  • HDU 2544

    题目描述:

             HDU 2544

    分析:

            Dijkstra算法的典型应用。

    源码:

            
    #include <stdio.h>
    #include <limits.h>
    
    //三个数组分别记录路线,最短距离,以及标志是否已经被扩展
    int map[101][101], dist[101], s[101];
    void dijkstra(int n, int x);
    
    int main()
    {
        int n, m, a, b, c;
        int i, j;
        while (scanf("%d%d", &n, &m) != EOF)
        {
            if (n==0 && m==0)
                break;
    
            //初始化数组map
            for (i = 1; i <= n; i ++)
            {
                for (j = 1; j <= n; j ++)
                {
                    map[i][j] = INT_MAX;
                }
            }
    
            //读取所有的边
            for (i = 1; i <= m; i ++)
            {
                scanf("%d%d%d", &a, &b, &c);
                map[a][b] = map[b][a] = c;
            }
    
            dijkstra(n, 1);
    
            printf("%d
    ", dist[n]);
        }
    
        return 0;
    }
    
    void dijkstra(int n, int x)
    {
        //x表示源点,n表示终点
        int mindis, u;
        int i, j;
        for (i = 1; i <= n; i ++)
        {
            dist[i] = map[x][i];
            s[i] = 0;
        }
        //扩展源点
        s[x] = 1;
        for (i = 1; i < n; i ++)  
        {
            mindis = INT_MAX;
            u = -1;
            //找出距离最小的点,然后扩展它
            for (j = 1; j <= n; j ++)
            {
                if (!s[j] && dist[j] < mindis)
                {
                    u = j;
                    mindis = dist[j];
                }
            }
            s[u] = 1;
            for (j = 1; j <= n; j ++)
            {
                if (s[j] == 0)
                {
                    if (dist[u]+map[u][j] < dist[j] && map[u][j] < INT_MAX)
                    {
                        dist[j] = dist[u] + map[u][j];
                    }
                }
            }
        }
    }

  • 相关阅读:
    最优二叉树(简易版本)
    平衡二叉树(AVL树)基础操作
    二叉树的基础操作
    双向链表(C语言)
    循环链表(C语言)
    单向链表(C语言)
    jQuery
    js事件
    JDBC-扩展
    JDBC
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3278410.html
Copyright © 2011-2022 走看看