228072026-01-15 18:42:40algoproTrükkcpp17Elfogadva 60/6034ms2408 KiB
// UUID: 9b6e8d9d-48c3-4d3b-890d-c5ed23144708
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

const ll mod = 1e9 + 7;
const int maxn = 2e4 + 3;
ll pows[maxn];
vector<vector<int>> g;
vector<int> volt;

void count_pows() {
	pows[0] = 1;
	for (int i = 1; i < maxn; i ++) pows[i] = (2 * pows[i - 1]) % mod;
}

bool dfs(int u, int val) {
	volt[u] = val;
	int val2 = 3 - val;
	for (int v : g[u]) {
		if (volt[v] == 0) {
			if (!dfs(v, val2)) return false;
		}
		if (volt[v] == val) return false;
	}
	return true;
}

void solve() {
	// fill(g.begin(), g.end(), vector<int>());
	// fill(volt.begin(), volt.end(), 0);
	int n, m; cin >> n >> m;
	volt.assign(n+1, false);
	g.assign(n+1, {});
	for (int i = 0; i < m; i ++) {
		int u, v; cin >> u >> v;
		g[u - 1].push_back(v); g[v].push_back(u - 1);
	}
	int comps = 0;
	for (int i = 0; i <= n; i ++) {
		if (volt[i] == 0) {
			comps ++;
			if (!dfs(i, 1)) {
				cout << 0 << "\n"; return;
			}
		}
	}
	cout << pows[comps - 1] << "\n";
	return;
}

int main() {
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	count_pows();
	int t; cin >> t;
	while (t --) solve();
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base60/60
1Elfogadva0/01ms564 KiB
2Elfogadva0/017ms1332 KiB
3Elfogadva3/31ms564 KiB
4Elfogadva3/31ms564 KiB
5Elfogadva3/31ms564 KiB
6Elfogadva3/31ms564 KiB
7Elfogadva2/234ms2036 KiB
8Elfogadva2/229ms2048 KiB
9Elfogadva2/230ms2100 KiB
10Elfogadva2/232ms1920 KiB
11Elfogadva2/230ms2104 KiB
12Elfogadva2/228ms1960 KiB
13Elfogadva2/229ms2176 KiB
14Elfogadva2/228ms2104 KiB
15Elfogadva2/228ms2356 KiB
16Elfogadva2/230ms2356 KiB
17Elfogadva2/229ms2208 KiB
18Elfogadva2/229ms2408 KiB
19Elfogadva2/234ms2184 KiB
20Elfogadva2/230ms2100 KiB
21Elfogadva2/232ms2268 KiB
22Elfogadva2/230ms2160 KiB
23Elfogadva2/229ms2204 KiB
24Elfogadva2/229ms2260 KiB
25Elfogadva2/230ms2084 KiB
26Elfogadva2/228ms2356 KiB
27Elfogadva2/230ms2108 KiB
28Elfogadva2/227ms1896 KiB
29Elfogadva2/214ms1588 KiB
30Elfogadva2/214ms1732 KiB