227852026-01-15 18:29:43algoproTrükkcpp17Wrong answer 18/6034ms2440 KiB
// UUID: 03313642-efba-4231-a17d-fa067130bd30
#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(maxn);
vector<int> volt(maxn);

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;
	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; 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;
}
SubtaskSumTestVerdictTimeMemory
base18/60
1Accepted0/02ms1260 KiB
2Accepted0/017ms1592 KiB
3Accepted3/32ms1076 KiB
4Wrong answer0/32ms1076 KiB
5Accepted3/32ms1076 KiB
6Wrong answer0/32ms1076 KiB
7Accepted2/232ms2068 KiB
8Wrong answer0/228ms2100 KiB
9Wrong answer0/228ms2124 KiB
10Accepted2/232ms1992 KiB
11Wrong answer0/229ms2100 KiB
12Wrong answer0/228ms1916 KiB
13Accepted2/228ms2356 KiB
14Wrong answer0/228ms2124 KiB
15Wrong answer0/228ms2180 KiB
16Accepted2/229ms2356 KiB
17Wrong answer0/228ms2356 KiB
18Wrong answer0/228ms2356 KiB
19Accepted2/234ms2080 KiB
20Wrong answer0/230ms2100 KiB
21Wrong answer0/232ms2100 KiB
22Wrong answer0/228ms2308 KiB
23Wrong answer0/229ms2100 KiB
24Wrong answer0/229ms2100 KiB
25Wrong answer0/229ms2440 KiB
26Wrong answer0/228ms2356 KiB
27Wrong answer0/230ms2100 KiB
28Wrong answer0/228ms1844 KiB
29Accepted2/214ms1592 KiB
30Wrong answer0/214ms1780 KiB