拓扑排序模板

来源:互联网 发布:java邮件发送图片 编辑:程序博客网 时间:2024/05/20 19:50

在有向无环图中,通过找拓扑序,可以从头到尾转移状态,比spfa少走了许多边。

记录每个点的入度,每次遇到一个点其入度-1,直到入度为0,变成起始点。

void tuopu(){queue<int>Q;for(int i=1;i<=n;i++){if(in[i]==0){Q.push(i); }}while(!Q.empty()){int u=Q.front();Q.pop();for(int i=head[u];i!=-1;i=edge[i],next){int v=edge[i].to;in[v]--;if(!in[v]){Q.push(v);}}}} 


0 0