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 }

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

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

  • 相关阅读:
    Alpine linux如何配置和管理自定义服务
    nginx仅允许域名访问禁止IP访问
    解决influxdb的log日志输出位置
    python配置文件INI/TOML/YAML/ENV的区别
    window获取本机所有IP
    学习本来的样子
    yum/编译安装Zabbix 5.0 LTS
    redis问题优化
    解决nginx同端口强制跳转https配置ssl证书问题
    通过DNS验证自动申请nginx证书
  • 原文地址:https://www.cnblogs.com/MisakaAzusa/p/8995048.html
Copyright © 2011-2022 走看看