7238 2024. 01. 04 15:37:33 anon Trükk cpp17 Elfogadva 60/60 48ms 10352 KiB
#include <bits/stdc++.h>
#define MOD ((ll) (1e9 + 7))
#define FastIO ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
typedef long long ll;
using namespace std;
int main() {
    FastIO;
    ll i, j, T, ans;
    cin >> T;
    vector<ll> N(T);
    vector<ll> K(T);
    vector<vector<array<ll, 2>>> ranges(T);
    for(i = 0; i < T; i++) {
        cin >> N[i] >> K[i];
        ranges[i].resize(K[i]);
        for(j = 0; j < K[i]; j++) {
            cin >> ranges[i][j][0] >> ranges[i][j][1];
            ranges[i][j][0]--;
        }
    }
    for(i = 0; i < T; i++) {
        vector<vector<ll>> graph(N[i] + 1);
        for(j = 0; j < K[i]; j++) {
            graph[ranges[i][j][0]].push_back(ranges[i][j][1]);
            graph[ranges[i][j][1]].push_back(ranges[i][j][0]);
        }
        vector<ll> colors(N[i] + 1, 0);
        ans = 0;
        for(j = 0; j <= N[i]; j++) {
            if(colors[j])
                continue;
            stack<array<ll, 2>> st;
            st.push({ j, colors[j] = 1 });
            while(!st.empty()) {
                auto [box, color] = st.top();
                st.pop();
                for(const auto &x : graph[box]) {
                    if(!colors[x]) {
                        st.push({ x, colors[x] = 3 - color });
                    }
                    else if(colors[x] == color) {
                        cout << "0\n";
                        goto next;
                    }
                }
            }
            ans = ans ? ((ans * 2LL) % MOD) : 1;
        }
        cout << ans << '\n';
        next:;
    }
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 60/60
1 Elfogadva 0/0 3ms 1832 KiB
2 Elfogadva 0/0 26ms 5216 KiB
3 Elfogadva 3/3 3ms 2264 KiB
4 Elfogadva 3/3 3ms 2440 KiB
5 Elfogadva 3/3 3ms 2664 KiB
6 Elfogadva 3/3 3ms 3156 KiB
7 Elfogadva 2/2 48ms 9020 KiB
8 Elfogadva 2/2 43ms 9024 KiB
9 Elfogadva 2/2 43ms 9188 KiB
10 Elfogadva 2/2 48ms 9284 KiB
11 Elfogadva 2/2 43ms 9404 KiB
12 Elfogadva 2/2 43ms 9344 KiB
13 Elfogadva 2/2 39ms 9292 KiB
14 Elfogadva 2/2 34ms 9400 KiB
15 Elfogadva 2/2 34ms 9412 KiB
16 Elfogadva 2/2 41ms 9520 KiB
17 Elfogadva 2/2 37ms 9628 KiB
18 Elfogadva 2/2 35ms 9608 KiB
19 Elfogadva 2/2 48ms 10024 KiB
20 Elfogadva 2/2 45ms 10108 KiB
21 Elfogadva 2/2 46ms 10064 KiB
22 Elfogadva 2/2 43ms 10000 KiB
23 Elfogadva 2/2 43ms 9960 KiB
24 Elfogadva 2/2 41ms 9964 KiB
25 Elfogadva 2/2 41ms 10352 KiB
26 Elfogadva 2/2 35ms 9944 KiB
27 Elfogadva 2/2 43ms 10040 KiB
28 Elfogadva 2/2 37ms 10348 KiB
29 Elfogadva 2/2 24ms 7640 KiB
30 Elfogadva 2/2 17ms 7600 KiB