229632026-01-16 09:51:37algoproTrükkcpp17Wrong answer 8/60101ms2144 KiB
// UUID: 7eb58319-4516-4705-b12a-780e9d213e0e
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
using pii=pair<int,int>;

vector<vector<int>> vec;
vector<bool> szinek, check;
ll ki=0;
bool kiloni=false;

ll hatvany(ll a, ll b, ll mod=1000000007)
{
	if(b==0)
		return 1;
	ll c=hatvany(a, b/2);
	if(b&1)
		return (c*c*a)%mod;
	return (c*c)%mod;
}

void dfs(int x)
{
	check[x]=true;
	for(auto& z:vec[x])
	{
		if(kiloni)
			return;
		if(check[z] && szinek[z]==szinek[x])
		{
			ki=0;
			kiloni=true;
			return;
		}
		if(!check[z])
		{
			szinek[z]=!szinek[x];
			dfs(z);
		}
	}
}

void solve()
{
	int n,k; cin >> n >> k;
	vec.assign(n+1, {});
	check.assign(n+1,false);
	szinek.assign(n+1,false);
	for(int i=0; i<k; i++)
	{
		int a,b; cin >> a >> b;
		vec[a-1].push_back(b);
		vec[b].push_back(a-1);
	}
	int komponensek=0;
	for(int i=0; i<n; i++)
	{
		if(!check[i])
		{
			dfs(i);
			cerr << i << "\n";
			komponensek++;
		}
	}
	if(kiloni)
	{
		cout << "0\n";
		return;
	}
	cout << hatvany(2, komponensek-1) << "\n";
}

int main() {
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    int t; cin >> t;
	while(t--)
		solve();
}
SubtaskSumTestVerdictTimeMemory
base8/60
1Accepted0/01ms316 KiB
2Wrong answer0/034ms1076 KiB
3Accepted3/31ms316 KiB
4Wrong answer0/31ms508 KiB
5Accepted3/31ms316 KiB
6Wrong answer0/31ms316 KiB
7Wrong answer0/254ms1836 KiB
8Wrong answer0/297ms1792 KiB
9Wrong answer0/2100ms1760 KiB
10Wrong answer0/254ms1840 KiB
11Accepted2/285ms1788 KiB
12Wrong answer0/296ms1688 KiB
13Wrong answer0/294ms2060 KiB
14Wrong answer0/298ms2100 KiB
15Wrong answer0/298ms2096 KiB
16Wrong answer0/294ms2144 KiB
17Wrong answer0/296ms2104 KiB
18Wrong answer0/298ms1944 KiB
19Wrong answer0/250ms1844 KiB
20Wrong answer0/292ms1844 KiB
21Wrong answer0/282ms1852 KiB
22Wrong answer0/2101ms1808 KiB
23Wrong answer0/2100ms1588 KiB
24Wrong answer0/2100ms1584 KiB
25Wrong answer0/2100ms1588 KiB
26Wrong answer0/2101ms2024 KiB
27Wrong answer0/292ms1788 KiB
28Wrong answer0/294ms1588 KiB
29Wrong answer0/282ms1336 KiB
30Wrong answer0/283ms1456 KiB