题目链接:
紫书P167
拓扑排序。
dfs——从一个点出发,dfs 与之相连的所有点,把本身放入到拓扑排序的首部。
#includeusing namespace std;const int Maxn = 1000;int G[Maxn][Maxn];int topo[Maxn];int c[Maxn];int n,m,t;bool dfs(int u) { c[u] = -1; for(int v=0;v
找入度为 0 的点,在这里开始删边。
#includeusing namespace std;const int Maxn = 1100;int G[Maxn][Maxn];int degree[Maxn];int ans[Maxn];int main(){ int n,m; while(scanf("%d%d",&n,&m),n) { memset(degree,0,sizeof(degree)); memset(G,0,sizeof(G)); for(int i=0;i