(模板)dijkstra

树下

2018-11-07 14:50:54

Personal

```cpp #define ll long long #define P pair<ll,int> priority_queue< P,vector<P>,greater<P> > q; inline void dij(int s){ fill(dis,dis+1+n,maxx); dis[s]=0; q.push(make_pair(dis[s],s)); while(!q.empty()){ P p=q.top(); int u=p.second; q.pop(); if(dis[u]<p.first) continue; for(register int i=head[u];i;i=edge[i].next){ int v=edge[i].to; ll tmp=dis[u]+edge[i].w; if(dis[v]>tmp){ dis[v]=tmp; q.push(make_pair(dis[v],v)); } } } } ```