拓扑排序
1 int c[N]; 2 int topo[N], t; 3 bool dfs(int u) 4 { 5 c[u] = -1; 6 for(int i = head[u]; ~i; i = e[i].to) 7 { 8 if(c[i] < 0) return false; 9 else if(!c[i] && !dfs(i)) return false; 10 } 11 c[u] = 1; topo[--t] = u; 12 return true;
13 } 14 bool toposort() 15 { 16 t = n; 17 memset(c, 0, sizeof(c)); 18 for(int i = 0; i < u; i++) 19 if(!c[i]) 20 if(!dfs(i)) 21 return false; 22 return true; 23 }
博主QQ:1073223357 欢迎大家通过QQ和我交流问题
同时也欢迎大家加入ACM跨校gaygay群676646254
版权声明:允许转载,转载时请同时附上原博客链接。