zoukankan      html  css  js  c++  java
  • 【luogu P3371 单源最短路】 模板 vector+SPFA

    stl真是好,,偷懒少写邻接表,,

    两个STL应用使代码简短了很多。然而还是那句话,天上不会掉馅饼,程序的效率还是有所下降的。然而,效率不是全部,人们宁可牺牲三倍效率用Java而不用C语言就是最好的例子(from_Charles E Leiserson_),具体取舍要看情况。 ——摘自luogu dalao

     1 #include <cstdio>
     2 #include <algorithm>
     3 #include <iostream>
     4 #include <vector>
     5 #include <queue>
     6 using namespace std;
     7 const int inf = 0x7fffffff;
     8 const int maxn = 500000 + 1;
     9 struct EDGE{
    10     int v, w;
    11 }pos;
    12 vector<EDGE> e[maxn];
    13 queue<int> q;
    14 int n, m, dis[maxn], s;
    15 bool vis[maxn];
    16 int SPFA()
    17 {
    18     while(!q.empty())
    19     {
    20         int now = q.front();
    21         q.pop();
    22         vis[now] = 0;
    23         for(int i = 0; i < e[now].size(); i++)
    24         {
    25             if(dis[e[now][i].v] > dis[now] + e[now][i].w)
    26             {
    27                 dis[e[now][i].v] = dis[now] + e[now][i].w;
    28                 if(vis[e[now][i].v] == 0)
    29                 {
    30                     vis[e[now][i].v] = 1;
    31                     q.push(e[now][i].v);
    32                 }
    33             }
    34         }
    35     }
    36 }
    37 int main()
    38 {
    39     scanf("%d%d%d",&n,&m,&s);
    40     for(int i = 1; i <= n; i++)
    41     dis[i] = inf;
    42     for(int i = 1; i <= m; i++)
    43     {
    44         int u;
    45         scanf("%d%d%d",&u,&pos.v,&pos.w);
    46         e[u].push_back(pos);
    47     }
    48     q.push(s);
    49     dis[s] = 0;
    50     vis[s] = 1;
    51     SPFA();
    52     for(int i = 1; i <= n; i++)
    53     printf("%d ",dis[i]);
    54     return 0;
    55 }

    隐约雷鸣,阴霾天空,但盼风雨来,能留你在此。

    隐约雷鸣,阴霾天空,即使天无雨,我亦留此地。

  • 相关阅读:
    DataStructure期末复习小tips
    MediaPlayer
    Java中Calendar的用法
    C++小tips
    函数返回局部变量的问题
    framebuffer
    MTK gpio adb 控制 和 查看中断INDEX
    emmc
    No 'Access-Control-Allow-Origin' header is present on the requested resource.解决方法(亲测有效)
    JavaScript的Promise必须要会的几个点
  • 原文地址:https://www.cnblogs.com/MisakaAzusa/p/8995048.html
Copyright © 2011-2022 走看看