pb_ds

Posted Amphetamine

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pb_ds相关的知识,希望对你有一定的参考价值。

#include<ext/pb_ds/priority_queue.hpp>
#define ll long long
#define pa pair<ll,int>
using namespace std;
using namespace __gnu_pbds;
typedef __gnu_pbds::priority_queue<pa,greater<pa>,pairing_heap_tag > heap;
heap::point_iterator id[1000005];

    heap q;
    dis[1]=0;id[1]=q.push(make_pair(0,1));
    while(!q.empty())
    {
        int now=q.top().second;q.pop();
        for(int i=last[now];i;i=e[i].next)
            if(e[i].v+dis[now]<dis[e[i].to])
            {
                dis[e[i].to]=e[i].v+dis[now];
                if(id[e[i].to]!=0)
                    q.modify(id[e[i].to],make_pair(dis[e[i].to],e[i].to));
                else id[e[i].to]=q.push(make_pair(dis[e[i].to],e[i].to));

以上是关于pb_ds的主要内容,如果未能解决你的问题,请参考以下文章

STL库与pb_ds库简单应用

BZOJ 3040: 最短路(road) [Dijkstra + pb_ds]

[BZOJ5289][HNOI2018]排列(拓扑排序+pb_ds)

APIO2012 派遣dispatching | 左偏树版本&&pb_ds版本

maven导出项目依赖的jar包

题解 P3369 模板普通平衡树(Treap/SBT)