spfa_dfs的优化

spfa_dfs的优化

spfa的朴素优化

void spfa(Node){
    instack[Node] = true;
    for(Node,v) in E:
        if dis[v]>dis[Node]+edge(Node,v)){
            dis[v] = dis[Node]+edge(Node,v);
            if not instack[v] {
                spfa(v);
            }else{
               return;
            }
        }
    instack[Node] = false;
}

spfa的限制修改优化

void spfa_init(node){
    for(node,v) in e
        if dis[node] + edge(node,v)<dis[v]{
        dis[v] = dis[node] + edge(node,v);
        spfa_init(v);
        return true;
    }
    return false;
}
main{
    for node in v:
        while spfa_init(node);
    for node in v:
        spfa(node);
}
全部评论

相关推荐

收到了小米的实习offer,犹豫是否要去。。。
认真搞学习:雷总还当过首富呢,公司不算大厂算独角兽吗
点赞 评论 收藏
分享
我面试,她问我有女朋友没
不太迷人的反派_:不过对象,还会结合你老家,意向城市等等,看你是否稳定。哥们,别多想
点赞 评论 收藏
分享
06-04 09:27
门头沟学院 Java
点赞 评论 收藏
分享
昨天 19:03
门头沟学院 运营
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务