213222026-01-12 18:26:59algoproTrükkcpp17Elfogadva 60/6035ms2236 KiB
// UUID: eb3fdeb3-71fd-4618-a17b-8dadf5f59bee
#include <bits/stdc++.h>
using namespace std;

const int mod = 1e9 + 7;

vector<vector<int>> edges;
vector<int> col;
bool c, z;

void dfs(int node) {
    if (!node) z = true;
    for (int x : edges[node]) {
        if (!col[x]) {
            col[x] = 3 - col[node];
            dfs(x);
        }
        if (col[x] == col[node]) c = true;
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    int t;
    cin >> t;
    while (t--) {
        int n, k;
        cin >> n >> k;
        edges.assign(n + 1, {});
        col.assign(n + 1, 0);
        while (k--) {
            int u, v;
            cin >> u >> v;
            u--;
            edges[u].push_back(v);
            edges[v].push_back(u);
        }
        int ans = 1;
        for (int i = 1; i <= n; i++) {
            if (!col[i]) {
                col[i] = 1;
                z = c = false;
                dfs(i);
                if (c) ans = 0;
                else if (!z) ans = ans * 2 % mod;
            }
        }
        cout << ans << "\n";
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base60/60
1Elfogadva0/01ms316 KiB
2Elfogadva0/017ms1332 KiB
3Elfogadva3/31ms508 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva2/234ms1840 KiB
8Elfogadva2/234ms1968 KiB
9Elfogadva2/234ms1844 KiB
10Elfogadva2/232ms1816 KiB
11Elfogadva2/232ms1948 KiB
12Elfogadva2/234ms1772 KiB
13Elfogadva2/228ms2100 KiB
14Elfogadva2/228ms2112 KiB
15Elfogadva2/229ms2100 KiB
16Elfogadva2/230ms2236 KiB
17Elfogadva2/230ms2100 KiB
18Elfogadva2/230ms2168 KiB
19Elfogadva2/235ms2100 KiB
20Elfogadva2/235ms1936 KiB
21Elfogadva2/235ms2100 KiB
22Elfogadva2/235ms2104 KiB
23Elfogadva2/235ms2100 KiB
24Elfogadva2/235ms2036 KiB
25Elfogadva2/235ms2108 KiB
26Elfogadva2/230ms2180 KiB
27Elfogadva2/234ms1992 KiB
28Elfogadva2/230ms1596 KiB
29Elfogadva2/216ms1588 KiB
30Elfogadva2/216ms1588 KiB