zoukankan      html  css  js  c++  java
  • 差分约束+SPFA+栈

    #include <stdio.h>
    #include <string.h>
    #include <queue>
    #include <stack>
    #define INF 0x3f3f3f3f
    using namespace std;
    struct node
    {
        int u,v,w,next;
    }edge[150001];
    int head[30001],dis[30001],vis[30001],k,n,m,s;
    
    void add(int u,int v,int w)
    {
        edge[k].u = u;
        edge[k].v = v;
        edge[k].w = w;
        edge[k].next = head[u];
        head[u] = k++;
    }
    
    void SPFA()
    {
        int i;
        int tt,vv;
        for(i = 1;i<=n;i++)
        {
            dis[i] = INF;
            vis[i] = 0;
        }
        dis[s] = 0;
        vis[s] = 1;
         // queue<int>q;
         stack<int>q;
        while(!q.empty())
        {
            q.pop();
        }
        q.push(s);
        while(!q.empty())
        {
           // tt = q.front();
           tt = q.top();
            q.pop();
            vis[tt] = 0;
            for(i = head[tt];i!=-1;i = edge[i].next)
            {
                vv = edge[i].v;
                if(dis[vv]>dis[tt] + edge[i].w)
                {
                    dis[vv] = dis[tt] + edge[i].w;
                    if(!vis[vv])
                    {
                        vis[vv] = 1;
                        q.push(vv);
                    }
                }
            }
        }
    
    }
    int main()
    {
        int i,u,v,w;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            s = 1;
            for(i = 1;i<=n;i++)
            {
                head[i] = -1;
            }
            k = 0;
            for(i = 0;i<m;i++)
            {
                scanf("%d%d%d",&u,&v,&w);
                add(u,v,w);
            }
            SPFA();
            printf("%d
    ",dis[n]);
        }
        return 0;
    }

    http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=267#problem/C

  • 相关阅读:
    puppet之模板和类
    puppet之资源
    puppet自动化安装服务
    puppet自动化搭建lnmp架构
    puppet工简介一
    CDN杂谈
    cdn工作原理
    mysql之innodb存储引擎
    Android应用开发基础篇(11)-----ViewFlipper
    Android应用开发基础篇(10)-----Menu(菜单)
  • 原文地址:https://www.cnblogs.com/yangyongqian/p/3930660.html
Copyright © 2011-2022 走看看