int flag=0;
int dis[N]={};
int vis[N]={};
void Clr(){
memset(dis,0,sizeof(dis));
memset(vis,0,sizeof(vis));
memset(first,0,sizeof(first));
cnt=1;
flag=0;
}
void SPFA(int u){
vis[u]=1;
for(int i=first[u];i;i=e[i].nxt){
int v=e[i].v;
if(dis[u]+e[i].w<dis[v]){
if(vis[v]||flag){
flag=1;
break;
}
dis[v]=dis[u]+e[i].w;
SPFA(v);
}
}
vis[u]=0;
}
//
for(int i=1;i<=n;i++){
SPFA(i);
if(flag)break;
}
模板SPFA-DFS判断负环
最新推荐文章于 2023-08-14 22:43:54 发布