zoukankan      html  css  js  c++  java
  • POJ 1144 Network(双连通求割点)

    题目链接

    题目大意

      给定多张无向图,求出每张图中割点数量。

    解题思路

      模板题。如果一个结点的儿子没法不通过该结点到达时间戳更小的点,说明这个结点是割点。

    代码

    const int maxn = 1e2+10;
    vector<int> e[maxn];
    int low[maxn], dfn[maxn], dn;
    bool iscut[maxn];
    void tarjan(int u) {
        dfn[u] = low[u] = ++dn;
        int chd = 0;
        for (int i = 0; i<e[u].size(); ++i) {
            int v = e[u][i];
            if (!dfn[v]) {
                ++chd;
                tarjan(v);
                low[u] = min(low[u], low[v]);
                if ((u==1&&chd>1) || (u!=1&&low[v]>=dfn[u])) iscut[u] = true;
            }
            else 
                low[u] = min(low[u], dfn[v]);
        }
    }
    int main() {
        int n;
        while(cin>>n&&n) {
            getchar();
            string s;
            while(getline(cin, s)) {
                if (s=="0") break;
                stringstream ss; ss << s;
                int u, v; ss >> u;
                while(ss>>v) {
                    e[u].push_back(v);
                    e[v].push_back(u);
                }
            }
            tarjan(1);
            int ans = 0;
            for (int i = 1; i<=n; ++i) {
                ans += iscut[i];
                e[i].clear();
            }
            cout << ans << endl;
            zero(low), zero(dfn), zero(iscut); dn = 0;
        }
        return 0;
    }
    
  • 相关阅读:
    校赛writeup
    memory-300——Jarvis OJ
    校赛_warmup_pwn
    sctf
    iscc-pwn1
    level3-64——Jarvis OJ
    JarvisOJ——level2
    JarvisOJ——guestbook
    Javris oj——level0
    linux 服务器 tomcat环境部署出错 重启
  • 原文地址:https://www.cnblogs.com/shuitiangong/p/12884156.html
Copyright © 2011-2022 走看看