45682023-03-29 22:53:31Valaki2Trükkcpp14Hibás válasz 0/6039ms6968 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define fi first
#define se second

const int mod = 1e9 + 7;

void solve() {
    int n, m;
    cin >> n >> m;
    vector<vector<int> > g(1 + n);
    for(int i = 0; i < m; i++) {
        int a, b;
        cin >> a >> b;
        a--;
        g[a].pb(b);
        g[b].pb(a);
    }
    vector<int> which(1 + n, -1);
    int total = 0, comp_cnt = 0;
    for(int i = 0; i <= n; i++) {
        if(which[i] == -1) {
            if(g[i].size() > 0) {
                comp_cnt++;
                which[i] = 0;
                for(int j : g[i]) {
                    which[j] = 1 - which[i];
                }
            }
        } else {
            for(int j : g[i]) {
                if(which[j] == which[i]) {
                    cout << "0\n";
                    return;
                }
                if(which[j] == -1) {
                    which[j] = 1 - which[i];
                }
            }
        }
    }
    for(int i = 0; i <= n; i++) {
        if(which[i] != -1) {
            total++;
        }
    }
    int ans_exponent = n - total + comp_cnt;
    int ans = 1;
    for(int i = 0; i < ans_exponent; i++) {
        ans *= 2;
        ans %= mod;
    }
    cout << ans << "\n";
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int T = 1;
    cin >> T;
    while(T--) {
        solve();
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/60
1Elfogadva0/03ms1828 KiB
2Hibás válasz0/019ms3552 KiB
3Hibás válasz0/33ms2264 KiB
4Hibás válasz0/32ms2320 KiB
5Hibás válasz0/33ms2544 KiB
6Hibás válasz0/32ms2532 KiB
7Hibás válasz0/237ms5360 KiB
8Hibás válasz0/239ms5568 KiB
9Hibás válasz0/239ms5532 KiB
10Hibás válasz0/237ms5652 KiB
11Hibás válasz0/237ms5628 KiB
12Hibás válasz0/237ms5848 KiB
13Hibás válasz0/229ms5712 KiB
14Hibás válasz0/229ms6012 KiB
15Hibás válasz0/228ms6072 KiB
16Hibás válasz0/229ms6300 KiB
17Hibás válasz0/230ms6152 KiB
18Hibás válasz0/229ms6124 KiB
19Hibás válasz0/239ms6176 KiB
20Hibás válasz0/239ms6192 KiB
21Hibás válasz0/239ms6412 KiB
22Hibás válasz0/237ms6296 KiB
23Hibás válasz0/237ms6376 KiB
24Hibás válasz0/237ms6464 KiB
25Hibás válasz0/237ms6636 KiB
26Hibás válasz0/229ms6796 KiB
27Hibás válasz0/239ms6968 KiB
28Hibás válasz0/235ms6840 KiB
29Hibás válasz0/216ms6112 KiB
30Hibás válasz0/216ms6120 KiB