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 ("不存在最短 ");
        }
    }

  • 相关阅读:
    pytest+allure详情版
    【Django】django.core.exceptions.ImproperlyConfigured: mysqlclient 1.4.0 or newer is required
    Docker-Portainer
    滑动解锁和截图
    调用JavaScript(浏览器滚动条)
    WebDriver操作cookie
    下载文件
    多表单切换
    利用parameterized模块进行unittest参数化
    关于软件测试必备的技能
  • 原文地址:https://www.cnblogs.com/TYH-TYH/p/4794767.html
Copyright © 2011-2022 走看看