dij堆优

priority_queue<pair<long long,int>,vector<pair<long long,int> >,greater<pair<long long,int> > > q;
void dij()
{
    memset(dis,9,sizeof(dis));
    dis[s]=0;
    q.push(make_pair(0,s));
    while(!q.empty())
    {
        x=q.top().second;
        q.pop();
        if(u[x]) continue;
        u[x]=1;
        for(int i=h[x];i;i=d[i].n)
        {
            if(u[d[i].b]) continue;
            if(dis[x]+d[i].c<dis[d[i].b])
            {
                dis[d[i].b]=dis[x]+d[i].c;
                q.push(make_pair(dis[d[i].b],d[i].b));
            }
        }
    }
}
posted @ 2021-11-15 11:06  hubingshan  阅读(17)  评论(0)    收藏  举报  来源