之前没整理拓扑排序,这里记一下。
模板一:方便理解原理,但效率低
const int maxn=100+7;
int n,m;
int a[maxn][maxn],c,in[maxn],b[maxn];
void tp(){
for(int i=1;i<=n;i++){
int x;
for(int j=1;j<=n;j++)
if(!in[j]){
x=j; in[j]--;
b[c++]=j; break;
}
for(int j=1;j<=n;j++) if(a[x][j]) in[j]--;
}
}
int main(){
n=read(); m=read();
while(m--){
int x,y; x=read(); y=read();
a[x][y]++; in[y]++;