最短路

void spfa(int s)
{
    for(int i=1;i<=n;i++) dis[i]=inf;
    dis[s]=0;
    priority_queue<nod> q;
    q.push((nod){s,0});
    while(!q.empty())
    {
        nod data=q.top();
        q.pop();
        int u=data.u;
        if(data.d!=dis[u]) continue;
        for(int i=head[u];i!=-1;i=e[i].next)
        {
            int v=e[i].to;
            if(dis[u]+e[i].w<dis[v])
            {
                dis[v]=dis[u]+e[i].w;
                q.push((nod){v,dis[v]});
            }
        }
    }
}

 

posted @ 2022-03-04 07:46  fw1024  阅读(24)  评论(0)    收藏  举报