码迷,mamicode.com
首页 > 其他好文 > 详细

HDU-2544-最短路

时间:2018-09-20 20:22:24      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:inf   printf   bsp   \n   clu   type   i++   amp   long   

  • 迪杰斯特拉算法--O(nlogn)
    #include"iostream"
    #include"cstring"
    #include"cstdio"
    using namespace std;
    const int inf = 0x3f3f3f3f;
    typedef long long LL;
    int map[105][105];
    int ans[105], n, m;
    bool flag[105];
    void dij() {
        for(int i = 2; i <= n; i++)
        ans[i] = map[1][i];
        ans[1] = 0;
        memset(flag, true, sizeof(flag));
        flag[1] = false;
        for(int i = 2; i < n; i++) {
            int v, mn = inf;
            for(int j = 1; j <= n; j++)
            if(ans[j] < mn && flag[j]) {
                mn = ans[j];
                v = j;
            }
            for(int j = 1; j <= n; j++)
            if(ans[v] + map[v][j] < ans[j])
            ans[j] = ans[v] + map[v][j];
            flag[v] = false;
        }
    }
    int main() {
        int a, b, c;
        while(scanf("%d%d", &n, &m) && (n || m)) {
            memset(map, inf, sizeof(map));
            while(m--) {
                scanf("%d%d%d", &a, &b, &c);
                if(map[a][b] > c)
                map[a][b] = map[b][a] = c;
            }
            dij();
            printf("%d\n", ans[n]);
        }
        return 0;
    }

     

HDU-2544-最短路

标签:inf   printf   bsp   \n   clu   type   i++   amp   long   

原文地址:https://www.cnblogs.com/Angel-Demon/p/9682995.html

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