zoukankan      html  css  js  c++  java
  • spfa代码

    先来贴一下,,虽然不是自己写的 

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<queue>

    #define Maxn 100

    #define Maxm 10000
    #define Max 10000
    using namespace std;

    int used[Maxn],outqueue[Maxn],head[Maxn],low[Maxn],n,m;

    struct Edge
    {
           int to,w,next;
    }edge[Maxm];

    bool SPFA (int start)
    {
         queue a;
         used[start] = 1;
         low[start] = 0;
         a.push(start);
         while (!a.empty())
         {
               int top = a.front();
               a.pop();
               outqueue[top]++;
               if (outqueue[top] > n) return false;
               for (int k = head[top]; k!= -1; k = edge[k].next)
               {
                   if (low[edge[k].to] > low[top] + edge[k].w)
                      low[edge[k].to] = low[top] + edge[k].w;
                   if (!used[edge[k].to])
                   {
                       used[edge[k].to] = 1;
                       a.push(edge[k].to);
                   }
               }
         }
         return true;
    }
        
    int main()
    {
        while (scanf ("%d%d", &n ,&m) != EOF)
        {
              memset (used, 0 ,sizeof(used));
              memset (head, -1 ,sizeof(head));
              memset (outqueue, 0 ,sizeof(outqueue));
              memset (low, Max, sizeof(low));
              int k = 0;
              while (m--)
              {
                    int a,b,w;
                    scanf ("%d%d%d", &a, &b, &w);
                    edge[k].to = b;
                    edge[k].w = w;
                    edge[k].next = head[a];
                    head[a] = k++;
              }
              if (SPFA(1))
                 printf ("%d ", low[n]);
              else
                 printf ("不存在最短 ");
        }
    }

  • 相关阅读:
    Vue 使用Scss,深度修改局部样式
    Sublime Text 插件:批量删除空白行
    Sublime Text 3前端开发常用优秀插件介绍
    常用的sublime text 3插件(很爽哦)
    20 个强大的 Sublime Text 插件
    Java多线程之synchronized详解
    进阶Java多线程
    初识Java多线程
    分布式锁实现的正确打开方式
    分布式session实现方式
  • 原文地址:https://www.cnblogs.com/TYH-TYH/p/4794767.html
Copyright © 2011-2022 走看看