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];
                    }
                }
            }
        }
    }

  • 相关阅读:
    PHP AES256加密算法
    PHP字符串比较
    linux常用命令
    播放音乐方法(兼容IE FF Chrome Opera Safari)
    JS小游戏象棋暗棋
    Sublime Text 2 介紹
    php生成QRcode
    几种极其隐蔽的XSS注入的防护
    JS判断碰撞方法
    php 发送带附件邮件
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3278410.html
Copyright © 2011-2022 走看看