zoukankan      html  css  js  c++  java
  • POJ2387 Til the Cows Come Home 【Dijkstra】

    题目链接:http://poj.org/problem?id=2387

    题目大意;

    题意:给出两个整数T,N,然后输入一些点直接的距离,求N和1之间的最短距离。。

    思路:dijkstra求单源最短路,但是要注意判重。
     
    #include <cstdio>
    #include <cstring>
    #define inf 0x3f3f3f3f
    #define min(a,b) a<=b?a:b
    int vis[1005], dis[1005];         //dis[j]表示起点到当前点的最短距离
    int n, t;
    int map[2050][2050];
    
    void dij()
    {
        int i, j, cur, k;
        memset(vis, 0, sizeof(vis));
        for (i = 1; i <= n; i++)(i == 1) ? (dis[i] = 0) : (dis[i] = inf);
        cur = 1;
        for (i = 0; i < n; i++)      //循环n次,每次挑选没走过的到起点距离最短的点
        {
            vis[cur] = 1;
            for (j = 1; j <= n; j++)
            {
                if (vis[j] == 0)
                    dis[j] = min(dis[j], map[cur][j] + dis[cur]);      //更新每个没走过的点,到起点的最短距离
            }
    
            //选择到起点距离最短的点
            int g = inf; int x = 1;
            for (j = 1; j <= n; j++)
            {
                if (dis[j] <= g && !vis[j])
                {
                    g = dis[j];
                    x = j;
                }
            }
            cur = x;
        }
        printf("%d
    ", dis[n]);      //输出终点到起点的最短距离
    }
    
    int main()
    {
         int i, j, a, b, c;
        while (scanf("%d%d", &t, &n) != EOF)
        {
            memset(map, inf, sizeof(map));
            for (i = 1; i <= t; i++)
            {
                scanf("%d%d%d", &a, &b, &c);      //去除重边的情况
                if (c < map[a][b])
                    map[a][b] = map[b][a] = c;
            }
            dij();
        }
        return 0;
    }

    2018-04-01


    作者:is_ok
    出处:http://www.cnblogs.com/00isok/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    轮播图适应代码jQ
    jQuery focus、blur事件 添加、删除类名
    节点操作js jQuery
    动态加载jQuery
    底边滑动变色的列表
    节点选择只有链接
    第三方登录过程—OAuth2.0协议
    JavaScript中常谈的对象
    浅谈JavaSccript函数与对象
    JavaScript与DOM的关系
  • 原文地址:https://www.cnblogs.com/00isok/p/8687846.html
Copyright © 2011-2022 走看看