229692026-01-16 10:01:10algoproTrükkcpp17Hibás válasz 20/6035ms2148 KiB
// UUID: ca942818-7ffb-45a0-b9cf-4693b3d370fd
#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);
	}
	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
base20/60
1Elfogadva0/01ms316 KiB
2Elfogadva0/017ms1076 KiB
3Elfogadva3/31ms316 KiB
4Hibás válasz0/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Hibás válasz0/31ms316 KiB
7Elfogadva2/235ms1744 KiB
8Hibás válasz0/229ms1784 KiB
9Hibás válasz0/230ms1652 KiB
10Elfogadva2/235ms1752 KiB
11Elfogadva2/230ms1748 KiB
12Hibás válasz0/229ms1632 KiB
13Elfogadva2/232ms2064 KiB
14Hibás válasz0/230ms1916 KiB
15Hibás válasz0/229ms1960 KiB
16Elfogadva2/232ms2148 KiB
17Hibás válasz0/230ms2100 KiB
18Hibás válasz0/230ms2100 KiB
19Elfogadva2/235ms1844 KiB
20Hibás válasz0/230ms1908 KiB
21Hibás válasz0/232ms1844 KiB
22Hibás válasz0/230ms1644 KiB
23Hibás válasz0/232ms1588 KiB
24Hibás válasz0/232ms1664 KiB
25Hibás válasz0/232ms1588 KiB
26Hibás válasz0/232ms2012 KiB
27Hibás válasz0/232ms1844 KiB
28Hibás válasz0/229ms1588 KiB
29Elfogadva2/217ms1332 KiB
30Hibás válasz0/216ms1332 KiB