(模板)SPFA
树下
2018-08-27 15:48:05
```
void spfa(int s){
queue<int> q;
for(int i=1;i<=n;i++) {
dis[i]=maxx;
vis[i]=0;
}
q.push(s); dis[s]=0; vis[s]=1;
while(!q.empty()){
int u=q.front();
q.pop();
vis[u]=0;
for(int i=head[u]; i; i=edge[i].next){
int v=edge[i].to;
if(dis[v]>dis[u]+edge[i].w){
dis[v]=dis[u]+edge[i].w;
if(vis[v]==0){
vis[v]=1;
q.push(v);
}
}
}
}
}
```