213262026-01-12 18:28:47algoproTrükkcpp17Hibás válasz 0/6079ms2244 KiB
// UUID: e8049b2a-c53c-4e03-bef6-3c5118af258f
#include <bits/stdc++.h>
using namespace std;
using ll = long long int;

vector<vector<int>> adj;
vector<bool> vis;
vector<int> parent;
vector<int> d;
const ll MOD = 1e9 + 7;

bool dfs(int v){
    vis[v] = true;
    d[v] = 1;
    for(auto x : adj[v]){
        if(!vis[x]){
            parent[x] = v;
            dfs(x);
        }else if(parent[v] != x){
            if((d[v] - d[x])%2 == 0){
                return false;
            }
        }
    }
    return true;
}

int main() {
	int t;
    cin >> t;
    while(t--){
        int n, k;
        cin >> n >> k;
        adj.assign(n+1, vector<int>());
        vis.assign(n+1, false);
        parent.assign(n+1, 0);
        d.assign(n+1, 0);
        for(int i=0;i<k;i++){
            int l, r;
            cin >> l >> r;
            adj[r].push_back(l-1);
            adj[l-1].push_back(r);
        }
        int components = 0;
        ll ans = 1;
        for(int i=1;i<=n;i++){
            if(!vis[i]){
                components++;
                parent[i] = i;
                if(!dfs(i)){
                    ans = 0;
                }
            }
        }
        for(int i=0;i<components-1;i++){
            ans *= 2;
            ans %= MOD;
        }
        cout << ans << '\n';

    }
}

/*
0 0 0:
0 0 1
0 1 0
1 0 0
1 1 1


*/
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/60
1Elfogadva0/01ms316 KiB
2Hibás válasz0/037ms1332 KiB
3Hibás válasz0/31ms316 KiB
4Hibás válasz0/31ms508 KiB
5Hibás válasz0/31ms316 KiB
6Hibás válasz0/31ms316 KiB
7Hibás válasz0/278ms1960 KiB
8Hibás válasz0/278ms1988 KiB
9Hibás válasz0/278ms2056 KiB
10Hibás válasz0/278ms1792 KiB
11Hibás válasz0/278ms1872 KiB
12Hibás válasz0/278ms1784 KiB
13Hibás válasz0/272ms2100 KiB
14Hibás válasz0/272ms2220 KiB
15Hibás válasz0/272ms2096 KiB
16Hibás válasz0/272ms2216 KiB
17Hibás válasz0/271ms2244 KiB
18Hibás válasz0/272ms2096 KiB
19Hibás válasz0/278ms2132 KiB
20Hibás válasz0/278ms2104 KiB
21Hibás válasz0/278ms2100 KiB
22Hibás válasz0/279ms1988 KiB
23Hibás válasz0/278ms2100 KiB
24Hibás válasz0/278ms2172 KiB
25Hibás válasz0/278ms2192 KiB
26Hibás válasz0/272ms2100 KiB
27Hibás válasz0/278ms2100 KiB
28Hibás válasz0/274ms1588 KiB
29Hibás válasz0/237ms1452 KiB
30Hibás válasz0/235ms1660 KiB