217872026-01-13 22:10:58szilTrükkcpp17Elfogadva 60/6045ms1652 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

const ll MOD = 1e9+7;

void solve() {
    int n, m; cin >> n >> m;
    vector<vector<int>> g(n+1);
    for (int i = 0; i < m; i++) {
        int u, v; cin >> u >> v;
        g[u-1].emplace_back(v);
        g[v].emplace_back(u-1);
    }
    vector<int> depth(n+1, -1);
    ll ans = 1;
    auto dfs = [&](auto &&self, int u, int d = 0) -> void {
        depth[u] = d;
        for (int v : g[u]) {
            if (depth[v] == -1) self(self, v, d^1);
            else if (depth[v] == d) ans = 0;
        }
    };
    for (int i = 0; i <= n; i++) {
        if (depth[i] == -1) {
            if (i != 0) {
                ans *= 2;
                ans %= MOD;
            }
            dfs(dfs, i);
        }
    }
    cout << ans << "\n";
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    int t = 1; 
    cin >> t;
    while (t--) solve();
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base60/60
1Elfogadva0/01ms500 KiB
2Elfogadva0/021ms1076 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva2/241ms1588 KiB
8Elfogadva2/243ms1588 KiB
9Elfogadva2/243ms1596 KiB
10Elfogadva2/241ms1492 KiB
11Elfogadva2/241ms1580 KiB
12Elfogadva2/241ms1588 KiB
13Elfogadva2/229ms1296 KiB
14Elfogadva2/229ms1104 KiB
15Elfogadva2/230ms1296 KiB
16Elfogadva2/232ms1360 KiB
17Elfogadva2/232ms1360 KiB
18Elfogadva2/230ms1244 KiB
19Elfogadva2/245ms1652 KiB
20Elfogadva2/243ms1616 KiB
21Elfogadva2/243ms1616 KiB
22Elfogadva2/241ms1468 KiB
23Elfogadva2/243ms1360 KiB
24Elfogadva2/243ms1568 KiB
25Elfogadva2/243ms1484 KiB
26Elfogadva2/232ms1360 KiB
27Elfogadva2/243ms1608 KiB
28Elfogadva2/237ms1360 KiB
29Elfogadva2/214ms996 KiB
30Elfogadva2/216ms1164 KiB