网站建设竞价托管什么意思,中国建筑材料价格网,wordpress视频优化,做相册的网站 网易为什么记录呢 因为不记录全忘了 虽然记了也不一定会看
有向无环图一定有拓扑序列邮箱无环图 - 拓扑图 入度为0的点作为起点入度为0的点入队列枚举出边 t-j删掉当前边#xff0c;t-j . j的入度减1判断j的入度是否为0#xff0c;来判断是否加入队列 有环#xff1a; …为什么记录呢 因为不记录全忘了 虽然记了也不一定会看
有向无环图一定有拓扑序列邮箱无环图 - 拓扑图 入度为0的点作为起点入度为0的点入队列枚举出边 t-j删掉当前边t-j . j的入度减1判断j的入度是否为0来判断是否加入队列 有环 不存在入度为0的点
#includeiostream
#includealgorithm
#includecmath
#includecstringusing namespace std;const int maxn 100010;int h[maxn], e[maxn], ne[maxn], idx;int q[maxn],d[maxn];int n;int hh 0, tt -1;void add(int a, int b){e[idx] b;ne[idx] h[a];h[a] idx;
}bool topsort(){while(hh tt){int t q[hh];for(int i h[t]; i ! -1; i ne[i]){int j e[i];d[j]--;if(d[j] 0){q[tt] j;// coutj: j ; }}}// couttt tt n-1 n-1 \n;return tt n-1;}int main(){int m,a,b;memset(h , -1, sizeof h);cin n m;for(int i 0; i m; i){cinab;add(a,b);// coutb b ;d[b];}for(int i 1; i n; i){if(d[i] 0){// couti: i\n;q[tt] i;}}if(topsort()){for(int i 0; i n; i){coutq[i] ;}}else cout-1 \n;return 0;
}