97572024-03-06 13:17:27FulopMateEmezen Rt.cpp17Futási hiba 0/100261ms49100 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

#define MAX(a, b) (a) = max((a), (b))
#define MIN(a, b) (a) = min((a), (b))
#define all(a) (a).begin(), (a).end()
#define sortedpair(a, b) {min((a), (b)), max((a), (b))}

const ll MOD = 1e9+7;

const int MAXN = 100'001;

struct E {
    int u, v, w;

    E(int a, int b, int c) : u(a), v(b), w(c) {}
};

int par[MAXN], ans[MAXN];
vector<int> g[MAXN];

int get(int u) {
    if (par[u] == u) return u;
    return par[u]=get(par[u]);
}

bool unio(int u, int v) {
    u = get(u); v=get(v);
    if (u == v) return false;
    par[u]=v;
    return true;
}

void dfs(int u, int p = -1, int d = 0) {
    ans[u] = d&1;
    for (int v : g[u]) {
        if (v != p) dfs(v, u, d+1);
    }
}

void solve(){
    int n, m; cin>>n>>m;
    iota(par, par+n+1, 0);
    map<pair<int, int>, int> mp;
    vector<pair<int, int>> a;
    for (int i = 0; i < m; i++) {
        int u, v; cin >> u >> v;
        a.emplace_back(u, v);
        if (u > v) swap(u, v);
        mp[{u, v}]++;
    }
    for (int i = 1; i <= n; i++) {
        g[i].clear();
    }

    vector<E> edges;
    for (auto [e, x] : mp) {
        edges.emplace_back(e.first, e.second, x);
    }
    sort(edges.begin(), edges.end(), [](auto x, auto y){
        return x.w > y.w;
    });
    for (E e : edges) {
        if (unio(e.u, e.v)) {
            g[e.u].emplace_back(e.v);
            g[e.v].emplace_back(e.u);
        }
    }
    dfs(1);
    int ok = 0;
    for (auto [u, v] : a) {
        if (ans[u] == ans[v]) ok++;
    }
    assert(ok <= m/2);
    int cnt = count(ans+1, ans+n+1, 1);
    cout << cnt << "\n";
    for (int i = 1; i <= n; i++) {
        if (ans[i]) cout << i << " ";
    }
    cout << "\n";
}

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);
    int _t = 1;
    cin >> _t;
    while (_t--) {
        solve();
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva4ms6760 KiB
subtask20/16
2Futási hiba4ms7136 KiB
3Elfogadva4ms7128 KiB
4Elfogadva4ms7272 KiB
5Elfogadva4ms7488 KiB
6Elfogadva4ms7704 KiB
7Futási hiba4ms7836 KiB
8Futási hiba4ms7760 KiB
9Elfogadva4ms7656 KiB
10Futási hiba4ms7912 KiB
11Futási hiba4ms8072 KiB
12Elfogadva4ms7936 KiB
13Elfogadva4ms8080 KiB
14Elfogadva4ms8044 KiB
15Elfogadva4ms7936 KiB
16Elfogadva4ms7936 KiB
subtask30/18
17Elfogadva79ms26600 KiB
18Elfogadva184ms45392 KiB
19Elfogadva184ms45384 KiB
20Futási hiba8ms10308 KiB
21Elfogadva100ms30996 KiB
22Elfogadva149ms40072 KiB
23Elfogadva231ms45948 KiB
24Elfogadva215ms47252 KiB
25Elfogadva261ms48936 KiB
26Elfogadva229ms48980 KiB
subtask40/66
27Futási hiba8ms10928 KiB
28Futási hiba19ms14872 KiB
29Elfogadva54ms21976 KiB
30Elfogadva167ms40628 KiB
31Elfogadva231ms49100 KiB
32Elfogadva226ms49100 KiB
33Elfogadva223ms48456 KiB
34Elfogadva221ms47548 KiB
35Futási hiba170ms45884 KiB
36Futási hiba173ms45812 KiB
37Futási hiba4ms9136 KiB
38Elfogadva9ms10516 KiB
39Futási hiba23ms14100 KiB
40Elfogadva4ms9036 KiB
41Futási hiba6ms9380 KiB
42Elfogadva57ms8688 KiB
43Futási hiba4ms8692 KiB
44Futási hiba4ms8692 KiB
45Futási hiba4ms8696 KiB