首页 > 其他 > 详细

spfa

时间:2014-03-12 22:43:30      阅读:369      评论:0      收藏:0      [点我收藏+]

可判环,可算负权边,编码简单,很强的算法

bubuko.com,布布扣
int spfa(int s)
{
    for(int i=1 ;i<=n ;i++)
        dis[i]=INF ;
    dis[s]=0 ;
    memset(vis,0,sizeof(vis)) ;
    vis[s]=1 ;
    queue <int> q ;
    q.push(s) ;
    ct[s]++ ;
    while(!q.empty())
    {
        int u=q.front() ;
        q.pop() ;
        vis[u]=0 ;
        for(int i=head[u] ;i!=-1 ;i=e[i].nxt)
        {
            int tt=e[i].t ;
            if(dis[tt]>dis[u]+e[i].v)
            {
                dis[tt]=dis[u]+e[i].v ;
                if(!vis[tt])
                {
                    ct[tt]++ ;
                    if(ct[tt]>=n)return 0 ;
                    vis[tt]=1 ;
                    q.push(tt) ;
                }
            }
        }
    }
    return 1 ;
}
View Code

spfa,布布扣,bubuko.com

spfa

原文:http://www.cnblogs.com/xiaohongmao/p/3597345.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!