int inq[MAXN];
int G[MAXN][MAXN];
int d[MAXN];
int num[MAXN];
int n;
bool SPFA(int s)
{
fill(d,d+MAXN,oo);
d[s]=0;
queue<int> q;
q.push(s);
inq[s]=1;
num[s]++;
while(!q.empty()){
int u=q.front();
q.pop();
inq[u]=0;
FOR(i,0,n-1)
{
if(G[u][i]!=oo)
{
if(d[i]<d[u]+G[u][i]){
d[i]=d[u]+G[u][i];
if(!inq[i]){
q.push(i);
inq[i]=1;
num[i]++;
if(num[i]>=n)return false;
}
}
}
}
}
return true;
}
SPFA
最新推荐文章于 2019-09-12 19:55:00 发布