9763 | 2024-03-06 13:53:20 | FulopMate | Emezen Rt. | cpp17 | Hibás válasz 0/100 | 1.077s | 61472 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], g2[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;
g2[u].emplace_back(v);
g2[v].emplace_back(u);
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 x = 0;
if (n <= 200) x = 20;
else x = 300;
for (int it = 0; it < x; it++) {
for (int i = 1; i <= n; i++) {
int cnt = 0;
for (int u : g2[i]) {
cnt += (ans[u]==ans[i]);
}
if (cnt > g2[i].size()/2) {
ans[i] ^= 1;
}
}
}
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 | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 7ms | 11408 KiB | ||||
subtask2 | 0/16 | ||||||
2 | Elfogadva | 6ms | 11592 KiB | ||||
3 | Elfogadva | 6ms | 11684 KiB | ||||
4 | Elfogadva | 6ms | 11824 KiB | ||||
5 | Elfogadva | 7ms | 12044 KiB | ||||
6 | Elfogadva | 6ms | 12392 KiB | ||||
7 | Elfogadva | 7ms | 12528 KiB | ||||
8 | Elfogadva | 7ms | 12496 KiB | ||||
9 | Elfogadva | 7ms | 12624 KiB | ||||
10 | Elfogadva | 7ms | 12784 KiB | ||||
11 | Hibás válasz | 7ms | 12992 KiB | ||||
12 | Elfogadva | 6ms | 12904 KiB | ||||
13 | Elfogadva | 6ms | 12912 KiB | ||||
14 | Hibás válasz | 7ms | 13140 KiB | ||||
15 | Elfogadva | 6ms | 13232 KiB | ||||
16 | Hibás válasz | 7ms | 13164 KiB | ||||
subtask3 | 0/18 | ||||||
17 | Elfogadva | 160ms | 33924 KiB | ||||
18 | Elfogadva | 351ms | 56184 KiB | ||||
19 | Elfogadva | 389ms | 55264 KiB | ||||
20 | Elfogadva | 90ms | 16292 KiB | ||||
21 | Elfogadva | 653ms | 41760 KiB | ||||
22 | Elfogadva | 873ms | 52712 KiB | ||||
23 | Elfogadva | 767ms | 58684 KiB | ||||
24 | Időlimit túllépés | 1.014s | 59996 KiB | ||||
25 | Időlimit túllépés | 1.06s | 32816 KiB | ||||
26 | Időlimit túllépés | 1.044s | 33012 KiB | ||||
subtask4 | 0/66 | ||||||
27 | Elfogadva | 114ms | 17992 KiB | ||||
28 | Elfogadva | 257ms | 23168 KiB | ||||
29 | Elfogadva | 446ms | 31660 KiB | ||||
30 | Elfogadva | 870ms | 52976 KiB | ||||
31 | Időlimit túllépés | 1.077s | 33120 KiB | ||||
32 | Időlimit túllépés | 1.059s | 33020 KiB | ||||
33 | Időlimit túllépés | 1.036s | 61472 KiB | ||||
34 | Elfogadva | 945ms | 60412 KiB | ||||
35 | Elfogadva | 377ms | 56520 KiB | ||||
36 | Elfogadva | 379ms | 56480 KiB | ||||
37 | Elfogadva | 7ms | 14828 KiB | ||||
38 | Elfogadva | 25ms | 16688 KiB | ||||
39 | Elfogadva | 52ms | 20544 KiB | ||||
40 | Elfogadva | 8ms | 14892 KiB | ||||
41 | Elfogadva | 8ms | 15176 KiB | ||||
42 | Időlimit túllépés | 1.069s | 9316 KiB | ||||
43 | Időlimit túllépés | 1.067s | 9260 KiB | ||||
44 | Hibás válasz | 98ms | 14632 KiB | ||||
45 | Hibás válasz | 46ms | 14564 KiB |