http://blog.csdn.net/u011742541/article/details/12916609
bool SPEA( int s )
{
queue<int>que;
memset( outque,0,sizeof(outque) );
memset( vis,0,sizeof(vis) );
for( int i = 0; i < n; i ++ )
dis[i] = inf;
dis[s] = 0;
que.push( s );
vis[s] = true;
while( !que.empty() )
{
int x = que.front(); que.pop();
vis[x] = false;
outque[x] ++;
if( outque[x] > n )
return false;
for( int i = 0; i < map[x].size(); i ++ )
{
node u = map[x][i];
if( u.w != inf && dis[u.id] > dis[x] + u.w )
{
dis[u.id] = dis[x] + u.w;
if( !vis[u.id] )
{
vis[u.id] = true;
que.push( u.id );
}
}
}
}
return true;
}
本文介绍了一个名为SPEA的算法实现,该算法通过使用队列和标记数组来遍历图,并检查是否存在负权重环。文章详细展示了如何初始化变量、更新节点距离以及处理节点出入队列的过程。
3644

被折叠的 条评论
为什么被折叠?



