zoukankan      html  css  js  c++  java
  • Dijkstra 模板

    讲解请参考这位大佬的博客:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html

    #include <stdio.h>
    #include <algorithm>
    #include <cstring>
    #include <cmath>
    using namespace std;
    const int inf=2147483647;
    const int maxn=10000+10;
    struct hh
    {
      int u,v,w,next;
    }e[maxn];
    int n,m,x,head[maxn],dis[maxn];
    bool vis[maxn];
    void dij()
    {
      int k;
      memset(vis,0,sizeof(vis));
      for(int i=1;i<=n;i++)dis[i]=inf;
      dis[x]=0;
      for(int i=1;i<=n;i++)
      {
        k=-1;
        for(int j=1;j<=n;j++)
         if(!vis[j]&&(k==-1||dis[j]<dis[k]))k=j;
        vis[k]=true;
        for(int j=head[k];j!=-1;j=e[j].next)
         if(!vis[e[j].v]&&e[j].w+dis[k]<dis[e[j].v])dis[e[j].v]=e[j].w+dis[k];
      }
    }
    int main()
    {
      scanf("%d %d %d",&n,&m,&x);
      for(int i=1;i<=m;i++)
      {
          scanf("%d%d%d",&e[i].u,&e[i].v,&e[i].w);
          e[i].next=head[e[i].u];
          head[e[i].u]=i;
      }
      dij();
      for(int i=1;i<=n;i++)
       printf("%d",dis[i]);
      return 0;
    }
  • 相关阅读:
    dir 函数
    模块的 __name__
    from..import 语句
    pass
    可变参数
    python 中的一点新知识
    Numpy中的一点小知识
    使用ipython %matplotlib inline
    numpy.random.rand
    Python:numpy中shape和reshape的用法
  • 原文地址:https://www.cnblogs.com/new-hand/p/7491922.html
Copyright © 2011-2022 走看看