#include<bits/stdc++.h>
using namespace std;
int in[100005]
vector<int> e[100005];
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
int u,v;
cin>>u>>v;
e[u].push_back(v);
in[v]++;
}
queue<int> q;
for(int i=1;i<=n;i++){
if(in[i]==0)q.push(i);
}
while(!q.empty){
int u=q.front();
cout<<u<<" ";
q.pop();
for(int i=0;i<e[u].size();i++){
int v=e[u][i];
in[v]--;
if(in[v]==0)q.push(v);
}
}
if(cnt==n)cout<<"无环";
else cout<<"有环";
return 0;
}
实用代码:拓补排序
于 2023-12-03 18:34:28 首次发布