単一ソース最短SPFAアルゴリズムテンプレート
2611 ワード
概要
使用法
void spfa_bfs(int st)
{
memset(dis,60,sizeof(dis));
memset(bz,false,sizeof(bz));
int l=0,r=1;
dis[que[1]=st]=0;
while(lint now=que[++l];
bz[now]=false;
for(int i=first[now];i;i=next[i])
if(dis[now]+w[i]now]+w[i];
if(!bz[en[i]]) bz[que[++r]=en[i]]=true;
}
}
return false;
}
void spfa_dfs(int x)
{
bz[x]=true;
for(int i=first[x];i;i=next[i])
if(dis[now]+w[i]now]+w[i];
if(!bz[en[i]]]) spfa(en[i]);
}
bz[x]=false;
}