#include <bits/stdc++.h>
#define MOD ((ll) (1e9 + 7))
#define FastIO ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
typedef long long ll;
using namespace std;
int main() {
FastIO;
ll i, j, T, ans;
cin >> T;
vector<ll> N(T);
vector<ll> K(T);
vector<vector<array<ll, 2>>> ranges(T);
for(i = 0; i < T; i++) {
cin >> N[i] >> K[i];
ranges[i].resize(K[i]);
for(j = 0; j < K[i]; j++) {
cin >> ranges[i][j][0] >> ranges[i][j][1];
ranges[i][j][0]--;
}
}
for(i = 0; i < T; i++) {
vector<vector<ll>> graph(N[i] + 1);
for(j = 0; j < K[i]; j++) {
graph[ranges[i][j][0]].push_back(ranges[i][j][1]);
graph[ranges[i][j][1]].push_back(ranges[i][j][0]);
}
vector<ll> colors(N[i] + 1, 0);
ans = 0;
for(j = 0; j <= N[i]; j++) {
if(colors[j])
continue;
stack<array<ll, 2>> st;
st.push({ j, colors[j] = 1 });
while(!st.empty()) {
auto [box, color] = st.top();
st.pop();
for(const auto &x : graph[box]) {
if(!colors[x]) {
st.push({ x, colors[x] = 3 - color });
}
else if(colors[x] == color) {
cout << "0\n";
goto next;
}
}
}
ans = ans ? ((ans * 2LL) % MOD) : 1;
}
cout << ans << '\n';
next:;
}
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 60/60 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1832 KiB | |||
2 | Elfogadva | 0/0 | 26ms | 5216 KiB | |||
3 | Elfogadva | 3/3 | 3ms | 2264 KiB | |||
4 | Elfogadva | 3/3 | 3ms | 2440 KiB | |||
5 | Elfogadva | 3/3 | 3ms | 2664 KiB | |||
6 | Elfogadva | 3/3 | 3ms | 3156 KiB | |||
7 | Elfogadva | 2/2 | 48ms | 9020 KiB | |||
8 | Elfogadva | 2/2 | 43ms | 9024 KiB | |||
9 | Elfogadva | 2/2 | 43ms | 9188 KiB | |||
10 | Elfogadva | 2/2 | 48ms | 9284 KiB | |||
11 | Elfogadva | 2/2 | 43ms | 9404 KiB | |||
12 | Elfogadva | 2/2 | 43ms | 9344 KiB | |||
13 | Elfogadva | 2/2 | 39ms | 9292 KiB | |||
14 | Elfogadva | 2/2 | 34ms | 9400 KiB | |||
15 | Elfogadva | 2/2 | 34ms | 9412 KiB | |||
16 | Elfogadva | 2/2 | 41ms | 9520 KiB | |||
17 | Elfogadva | 2/2 | 37ms | 9628 KiB | |||
18 | Elfogadva | 2/2 | 35ms | 9608 KiB | |||
19 | Elfogadva | 2/2 | 48ms | 10024 KiB | |||
20 | Elfogadva | 2/2 | 45ms | 10108 KiB | |||
21 | Elfogadva | 2/2 | 46ms | 10064 KiB | |||
22 | Elfogadva | 2/2 | 43ms | 10000 KiB | |||
23 | Elfogadva | 2/2 | 43ms | 9960 KiB | |||
24 | Elfogadva | 2/2 | 41ms | 9964 KiB | |||
25 | Elfogadva | 2/2 | 41ms | 10352 KiB | |||
26 | Elfogadva | 2/2 | 35ms | 9944 KiB | |||
27 | Elfogadva | 2/2 | 43ms | 10040 KiB | |||
28 | Elfogadva | 2/2 | 37ms | 10348 KiB | |||
29 | Elfogadva | 2/2 | 24ms | 7640 KiB | |||
30 | Elfogadva | 2/2 | 17ms | 7600 KiB |