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);
}
全部评论

相关推荐

01-02 21:17
已编辑
西安理工大学 后端
程序员小白条:项目不太重要,你的优势的算法竞赛,然后多背相关的八股文,项目可以不作为重点考虑,面试可能就简单带过项目就行了,你可以直接写简历,背项目相关的八股文就行,也不用自己做,时间紧张的情况下,性价比最高
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务