有向无环图中才存在拓扑序列,拓扑序列就是将有向无环图中的所有点排成一个线性序列
方法:用数组模拟队列,先将所有入度为0的点入队,一次从队列中取出队首,将队首指向下一个节点的边去除,以某个点为队首,一直向后去除,直到末尾,将处理过程中入度为0的点入队。最后判断队列的长度是否是n,如果是就代表所有点都已经入队,代表这个图存在拓扑序列,如果不是就代表存在环,存在无法入队的节点
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 1e5 + 10;
int e[N], ne[N], h[N], idx;
int q[N], d[N];
int n, m;
void add(