229762026-01-16 10:07:42algoproTrükkcpp17Elfogadva 60/6035ms2292 KiB
// UUID: e43574a5-68fc-4143-9ef0-06de4c671585
#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);
	kiloni=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);
	}
	ll komponensek=0;
	for(int i=0; i<n+1; 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();
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base60/60
1Elfogadva0/01ms512 KiB
2Elfogadva0/017ms1076 KiB
3Elfogadva3/31ms492 KiB
4Elfogadva3/31ms508 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms500 KiB
7Elfogadva2/235ms1832 KiB
8Elfogadva2/230ms1784 KiB
9Elfogadva2/232ms1844 KiB
10Elfogadva2/234ms1844 KiB
11Elfogadva2/230ms1844 KiB
12Elfogadva2/229ms1640 KiB
13Elfogadva2/229ms2040 KiB
14Elfogadva2/229ms2088 KiB
15Elfogadva2/229ms1956 KiB
16Elfogadva2/232ms2096 KiB
17Elfogadva2/229ms2164 KiB
18Elfogadva2/229ms2100 KiB
19Elfogadva2/235ms1852 KiB
20Elfogadva2/232ms1844 KiB
21Elfogadva2/232ms1844 KiB
22Elfogadva2/230ms1848 KiB
23Elfogadva2/232ms1844 KiB
24Elfogadva2/230ms1844 KiB
25Elfogadva2/230ms2292 KiB
26Elfogadva2/229ms2100 KiB
27Elfogadva2/232ms2028 KiB
28Elfogadva2/228ms1588 KiB
29Elfogadva2/216ms1524 KiB
30Elfogadva2/214ms1448 KiB