本文主要是介绍uva 10510 - Cactus(仙人掌图),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:uva 10510 - Cactus
类似求强联通分量的算法,但是每次更新到反向边是,说明存在一个环,那么就将环上的点标记+1,如果有点的标记值大于等于2,说明有边存在在两个环中。
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>using namespace std;
const int maxn = 1e4 + 5;int N, M, f[maxn], cnt[maxn];
int cntlock, cntscc, pre[maxn], low[maxn];
vector<int> G[maxn];void init () {scanf("%d%d", &N, &M);for (int i = 0; i < N; i++) G[i].clear();int u, v;while (M--) {scanf("%d%d", &u, &v);G[u].push_back(v);}
}bool draw(int e, int u) {while (f[u
这篇关于uva 10510 - Cactus(仙人掌图)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!