dijkstra

wenge

2020-02-12 21:18:47

Personal

# dijkstra ```cpp struct node{ ll id,d; node(){} node(ll a,ll b){ id=a; d=b; } }; bool operator <(node x,node y){ return x.d>y.d; } ll n,m,s,t; vector<ll> f[N]; ll vis[N],dis[N]; void dijkstra(ll s){ for(int i=1;i<=n;i++)dis[i]=0x3f3f3f3f; dis[s]=0; priority_queue<node> q; q.push(node(s,0)); while(!q.empty()){ ll x=q.top().id; q.pop(); if(vis[x])continue; vis[x]=1; for(int i=0;i<f[x].size();i++){ ll y=f[x][i]; ll l=dis[x]+g[x][i]; if(dis[y]>l){ dis[y]=l; q.push(node(y,dis[y])); } } } } ```