Unverified Commit 995352d8 authored by mgt/Enter-tainer's avatar mgt/Enter-tainer Committed by GitHub
Browse files

Merge pull request #2649 from zhb2000/patch-1

parents 9e6b8a5e 23809342
Loading
Loading
Loading
Loading
+12 −9
Original line number Diff line number Diff line
@@ -84,24 +84,27 @@ bool toposort() {
## DFS 算法

```cpp
// dfs 版本
vector<int> G[MAXN];  // vector 实现的邻接表
int c[MAXN];          // 标志数组
vector<int> topo;     // 拓扑排序后的节点

bool dfs(int u) {
  c[u] = -1;
  for (int v = 0; v <= n; v++)
    if (G[u][v]) {
  for (int v : G[u]) {
    if (c[v] < 0)
      return false;
    else if (!c[v])
        dfs(v);
      if (!dfs(v)) return false;
  }
  c[u] = 1;
  topo.push_back(u);
  return true;
}

bool toposort() {
  topo.clear();
  memset(c, 0, sizeof(c));
  for (int u = 0; u <= n; u++)
  for (int u = 0; u < n; u++)
    if (!c[u])
      if (!dfs(u)) return false;
  reverse(topo.begin(), topo.end());