zoukankan      html  css  js  c++  java
  • hdu 1874 畅通工程续

    SPFA

    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    #include<vector>
    #include<algorithm>
    using namespace std;
    const int maxn = 2222;
    vector<int>abc[maxn];
    int s[maxn][maxn];
    int js[maxn];
    struct aaa{
        int s, node;
    }dt[maxn];
    bool cmp(const aaa&a, const aaa&b)
    {
        return a.s<b.s;
    }
    int main()
    {
        int n, m;
        while (~scanf("%d%d", &n, &m))
        {
            int i, u, v, ss, j;
            for (i = 0; i <= n; i++) for (j = 0; j <= n; j++) s[i][j] = 999999999;
            for (i = 0; i<maxn; i++) js[i] = 999999999;
            for (i = 0; i<maxn; i++) abc[i].clear();
            for (i = 1; i <= m; i++)
            {
                scanf("%d%d%d", &u, &v, &ss);
                if (ss<s[u][v])//选择最短的一条边
                {
                    abc[u].push_back(v);
                    s[u][v] = ss;
                    abc[v].push_back(u);
                    s[v][u] = ss;
                }
            }
            int sx, ex, b = 0;
            scanf("%d%d", &sx, &ex);
            js[sx] = 0;//第一个点
            dt[0].node = sx;
            dt[0].s = 0;
            for (i = 0; i <= b; i++)
            {
              //  sort(dt + i, dt + b, cmp);
                for (j = 0; j<abc[dt[i].node].size(); j++)
                {
    
                    int yy = s[dt[i].node][abc[dt[i].node][j]];
                    if (yy != 0)
                    {
                        if (dt[i].s + yy<js[abc[dt[i].node][j]])
                        {
                            b++;
                            dt[b].node = abc[dt[i].node][j];
                            dt[b].s = dt[i].s + yy;
                            js[abc[dt[i].node][j]] = dt[i].s + yy;
                        }
                    }
    
                }
            }
            if (js[ex] == 999999999)  printf("%d
    ", -1);
            else printf("%d
    ", js[ex]);
        }
        return 0;
    }
  • 相关阅读:
    SELECT 的6大子句
    MySQL关联查询
    MySql常用函数
    自动升压降压充电模块 最高25.2V
    压力校准仪开发日志--2017-10-30-2
    动压和静压
    上海无人面馆
    皮托管
    SOC
    LDO
  • 原文地址:https://www.cnblogs.com/zufezzt/p/4463001.html
Copyright © 2011-2022 走看看