Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int V;
- std::vector<std::vector<int>> edges;
- std::vector<bool> visited, rec;
- bool cycle_dfs(int u)
- {
- if(!visited[u])
- {
- visited[u] = rec[u] = true;
- for(int v : edges[u])
- if((!visited[v] && cycle_dfs(v)) || rec[i])
- return true;
- rec[i] = false;
- }
- return false;
- }
- bool has_cycles()
- {
- visited.resize(V, false), rec.resize(V, false);
- for(int u = 0; u < V; u++)
- if(cycle_dfs(u))
- return true;
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement