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的主要内容,如果未能解决你的问题,请参考以下文章
BZOJ 3040: 最短路(road) [Dijkstra + pb_ds]
[BZOJ5289][HNOI2018]排列(拓扑排序+pb_ds)