zoukankan      html  css  js  c++  java
  • 堆优化的djkstra

    const int N=2e2+55;
    const ll inf=0x3f3f3f3f3f3f3f;
    struct Edge
    {
        int t;
        ll v;
    };
    vector<Edge>g[N];
    void add(int u,int v,ll w)
    {
        g[u].push_back({v,w});
        g[v].push_back({u,w});
    }
    ll d[N];
    bool vis[N];
    priority_queue<pair<ll,int>,vector<pair<ll,int> >,greater<pair<ll,int> > >que;
    void djkstra()
    {
        memset(d,inf,sizeof d);
        memset(vis,0,sizeof vis);
        que.push({0,1});
        d[1]=0;
        while(!que.empty())
        {
            int now=que.top().second;
            que.pop();
            if(vis[now])continue;
            vis[now]=true;
            int len=g[now].size();
            for(int i=0;i<len;i++)
            {
                Edge &e=g[now][i];
                if(d[e.t]>d[now]+e.v)
                {
                    d[e.t]=d[now]+e.v;
                    que.push({d[e.t],e.t});
                }
            }
        }
    }
  • 相关阅读:
    Django进阶2
    Django进阶
    Django基础
    jQuery基本操作
    Dom编程
    JavaScript简介
    Python—sqlalchemy
    Python—RabbitMQ
    Python—redis
    Python—操作redis
  • 原文地址:https://www.cnblogs.com/Suiyue-Li/p/11272160.html
Copyright © 2011-2022 走看看