zoukankan      html  css  js  c++  java
  • 算法训练 最短路

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<queue>
     4 #include<iostream>
     5 #include<algorithm>
     6 #include<cmath>
     7 using namespace std;
     8 #define N 200000+5
     9 const int inf=0x3f3f3f3f;
    10 struct node{
    11     int u,v,nest,w;
    12 }e[N];      //结点;;
    13 int head[N],dis[N],vis[N];
    14 int n,m,cnt;
    15 
    16 void add(int u,int v,int w)  //就是往邻接表中添加一条从u到v权值为w的边;
    17 {
    18     e[cnt].u=u;
    19     e[cnt].v=v;
    20     e[cnt].w=w;
    21     e[cnt].nest=head[u];
    22     head[u]=cnt++;
    23 }
    24 
    25 void spfa()
    26 {
    27     int i,u,v,w;
    28     queue<int>q; 
    29     for(i=1;i<=n;i++)
    30     {
    31         dis[i]=inf;    vis[i]=0;
    32     }
    33     dis[1]=0;
    34     vis[1]=1;
    35     q.push(1);
    36     while(!q.empty())
    37     {
    38         u=q.front();
    39         q.pop();
    40         vis[u]=0;
    41         for(i=head[u];i!=-1;i=e[i].nest)
    42         {
    43             v=e[i].v;
    44             w=e[i].w;
    45             if(dis[v]>dis[u]+w)
    46             {
    47                 dis[v]=dis[u]+w;
    48                 if(!vis[v])
    49                 {
    50                     vis[v]=1;
    51                     q.push(v);
    52                 }
    53             }
    54         }
    55     }
    56 }
    57 
    58 int main()
    59 {
    60     int i,u,v,w;
    61     while(~scanf("%d%d",&n,&m))
    62     {
    63         cnt=0;
    64         memset(head,-1,sizeof(head));
    65         for(i=0;i<m;i++)
    66         {
    67             scanf("%d%d%d",&u,&v,&w);
    68             add(u,v,w);
    69         }
    70         spfa();
    71         for(i=2;i<=n;i++)
    72             printf("%d
    ",dis[i]);
    73             
    74     }
    75     return 0;
    76 }
    View Code

     

    http://www.cnblogs.com/crazyacking/p/3749308.html  关于最短路径。。

  • 相关阅读:
    xss漏洞
    web日志分析(待)
    linux命令学习摘记
    浏览器的MIME映射(程序映射)
    文件上传靶场-Upload-Labs
    目录遍历用字典
    cmd、bat分割单行字符串
    iptables使用
    Spring AOP 学习(五)
    Spring 使用注解注入 学习(四)
  • 原文地址:https://www.cnblogs.com/WDKER/p/5161562.html
Copyright © 2011-2022 走看看