8296 2024. 01. 14 11:45:27 zsombor Maximális kaktusz (45 pont) cpp17 Elfogadva 45/45 52ms 13784 KiB
#include <iostream>
#include <vector>
using namespace std;

int n, m, a, b, ans = 0;
vector <vector <int>> g(1e5);
vector <int> p(1e5, 0);
vector <bool> fa(1e5, true);
vector <bool> szabad;

void dfs1(int x) {
    for (int i : g[x]) {
        if (i == p[x]) continue;
        if (p[i]) {
            a = x;
            if (fa[x]) while (a != p[i]) { fa[a] = false; a = p[a]; }
            continue;
        }
        p[i] = x;
        dfs1(i);
    }
}

void dfs2(int x) {
    fa[x] = false;
    int c = 0;
    for (int i : g[x]) {
        if (!fa[i]) continue;
        p[i] = x;
        dfs2(i);
        if (szabad[i]) c++;
    }
    if (!szabad[x]) return;
    if (c >= 2) {
        ans++;
        szabad[x] = false;
    }
    if (c == 1 && p[x] > 0 && szabad[p[x]]) {
        ans++;
        szabad[x] = false;
        szabad[p[x]] = false;
    }
}

int main()
{
    cin >> n >> m;
    for (int i = 0; i < m; i++) {
        cin >> a >> b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    p[1] = -1;
    dfs1(1);
    fill(p.begin(), p.end(), 0);
    szabad = fa;
    for (int i = 1; i <= n; i++) {
        if (!fa[i]) continue;
        p[i] = -1;
        dfs2(i);
    }
    cout << ans;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 45/45
1 Elfogadva 0/0 4ms 7168 KiB
2 Elfogadva 0/0 4ms 7468 KiB
3 Elfogadva 1/1 4ms 7680 KiB
4 Elfogadva 1/1 4ms 7696 KiB
5 Elfogadva 1/1 4ms 7948 KiB
6 Elfogadva 2/2 4ms 8292 KiB
7 Elfogadva 2/2 4ms 8488 KiB
8 Elfogadva 2/2 4ms 8768 KiB
9 Elfogadva 1/1 4ms 8804 KiB
10 Elfogadva 1/1 4ms 8876 KiB
11 Elfogadva 1/1 4ms 9036 KiB
12 Elfogadva 1/1 4ms 8892 KiB
13 Elfogadva 1/1 4ms 9020 KiB
14 Elfogadva 1/1 4ms 8936 KiB
15 Elfogadva 1/1 6ms 8888 KiB
16 Elfogadva 1/1 6ms 9020 KiB
17 Elfogadva 1/1 4ms 8916 KiB
18 Elfogadva 1/1 50ms 12096 KiB
19 Elfogadva 1/1 45ms 12420 KiB
20 Elfogadva 1/1 52ms 12096 KiB
21 Elfogadva 1/1 50ms 12288 KiB
22 Elfogadva 2/2 39ms 12392 KiB
23 Elfogadva 2/2 39ms 12480 KiB
24 Elfogadva 2/2 39ms 12264 KiB
25 Elfogadva 2/2 39ms 12496 KiB
26 Elfogadva 1/1 4ms 8864 KiB
27 Elfogadva 1/1 4ms 8864 KiB
28 Elfogadva 1/1 4ms 9116 KiB
29 Elfogadva 1/1 48ms 12764 KiB
30 Elfogadva 1/1 50ms 12852 KiB
31 Elfogadva 1/1 45ms 13124 KiB
32 Elfogadva 1/1 46ms 13060 KiB
33 Elfogadva 2/2 48ms 13096 KiB
34 Elfogadva 2/2 48ms 13236 KiB
35 Elfogadva 2/2 45ms 13504 KiB
36 Elfogadva 2/2 43ms 13784 KiB