单源最短路


 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

相关