单源最短路
1 struct node{ 2 int id,dis; 3 friend bool operator < (node x,node y){ 4 return x.dis>y.dis; 5 } 6 }; 7 priority_queueq; 8 9 memset(dis,0x3f,sizeof(dis)); 10 dis[i] = 0; 11 q.push({1,0}); 12 while(!q.empty()){ 13 now = (q.top()).id; 14 q.pop(); 15 if(vis[now]) continue; 16 vis[now] = 1; 17 for(register int i = head[now];i;i = nxt[i]){ 18 if(dis[to[i]]>dis[now] + w[i]){ 19 dis[to[i]] = dis[now] + w[i]; 20 q.push({to[i],dis[to[i]]}); 21 } 22 } 23 }
学长的一种写法
例题 洛谷 P4779