单源最短路
作者:互联网
```**------------恢复内容开始------------**
## dijkstra /spfa /floyd多源变单源
###热浪 https://www.acwing.com/problem/content/1131/
模板题 使用spfa过
spfa 从队列中取出点进行松弛操作 使用st[]记录点是否还在队列中 如果这个点本来就存在队列中那么就重复加入点了
void spfa(int s){
memset(d, 0x3f, sizeof d);
d[s]=0;
int hh=0,tt=1;
st[s]=true;q[0]=s;
while(hh!=tt){
int t=q[hh++];
if(hh==N) hh=0;
st[t]=false;
for (int i = h[t]; ~i ; i =ne[i] ){
int j=e[i];
if(d[j]>d[t]+w[i]){
d[j]=d[t]+w[i];
if(st[j]==false){
st[j]=true;
q[tt++]=j;
if(tt==N) tt=0;
}
}
}
}
}
##信使https://www.acwing.com/problem/content/1130/
广播式求时间 求广播所有点的最短时间 每个点接受到向他的邻边广播
指挥部到每个边的路径
相当于求一个点到所有点的最短路的最长长度
这里数据范围小使用Floyd
注意使用Floyd 必须初始化 d[i][i]=0;
------------恢复内容结束------------
标签:int,短路,单源,st,------------,hh,spfa,tt 来源: https://www.cnblogs.com/liang302/p/16182423.html