资讯详情

算法模板:拓扑排序

📅 2026/10/8 13:15:17 | 华诺云谱 👁 阅读
算法模板:拓扑排序
有向无环图一定可以得出拓扑图有环的图无法进行拓扑排序#include bits/stdc.h using namespace std; const int N 1e510,M N*4; int h[N],e[M],ne[M],idx; int q[N],d[N]; int n,m; void add(int a,int b) { e[idx] b; ne[idx] h[a]; h[a] idx; } bool topsort() { int hh 0,tt -1; for(int i 1;i n;i) { if(!d[i]) q[tt] i; } while(hhtt) { int t q[hh]; for(int i h[t];i!-1;i ne[i]) { int j e[i]; d[j]--; if(!d[j]) q[tt] j; } } return tt n-1; } int main() { ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); cin n m; memset(h,-1,sizeof h); while(m--) { int a,b; cin a b; add(a,b); d[b]; } if(topsort()) { for(int i 0;i n;i) { cout q[i] ; } } else{ cout -1 \n; } return 0; }
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑