zoukankan      html  css  js  c++  java
  • 最短路径——Dijkstra算法(C++)

    源代码:
    
    #include<cstdio>
    int i[1001][1001],n,k;
    bool f[1001]={0};
    const int maxint=1061109567;
    int main()
    {
        scanf("%d%d",&n,&k);
        for (int a=1;a<=n;a++)
          for (int b=1;b<=n;b++)
          {
            scanf("%d",&i[a][b]);
            if (i[a][b]==-1)
              i[a][b]=maxint;
          }
        f[k]=true;
        for (int a=2;a<=n;a++)
        {
          int t=maxint,s;
          for (int b=1;b<=n;b++)
            if (!f[b]&&(i[k][b]<t))
            {
              t=i[k][b];
              s=b;
            }
          f[s]=true;
          for (int b=1;b<=n;b++)
            if (!f[b]&&(i[k][s]+i[s][b]<i[k][b]))
              i[k][b]=i[k][s]+i[s][b];
        }
        for (int a=1;a<=n;a++)
          printf("%d --> %d = %d
    ",k,a,i[k][a]);
        return 0;
    }
  • 相关阅读:
    总结!!!总结!!!
    Beta 总结
    BETA-7
    BETA-6
    BETA-5
    BETA-4
    BETA-3
    华为云-软件产品案例分析
    BETA-2
    BETA-1
  • 原文地址:https://www.cnblogs.com/koruko/p/5115628.html
Copyright © 2011-2022 走看看