拓扑序

· · 个人记录

概述

拓扑序

实现原理

int n,m,in[maxn],q[maxn],hd=1,tl;
b_s<int> e[maxn];
void toposort(){
    For(i,1,n) if(!in[i]) q[++tl]=i;
    while(tl>=hd){
        int now=q[hd++];
        for(int a:e[now]){
            --in[a];某种想做的操作;
            if(!in[a]) q[++tl]=a;
        }
    }
}

应用

例题