227972026-01-15 18:38:38algoproTrükkcpp17Hibás válasz 12/6035ms3268 KiB
// UUID: be38f534-a753-4256-be43-022b2ae30a06
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
using pll=pair<ll, ll>;

vector<vector<ll>> parent;
vector<ll> check;

bool bad;

void dfs(ll x){
	for (auto& z:parent[x]){
		if (check[z]==-1){
			check[z]=(check[x]+1)%2;
			dfs(z);
		}
		else{
			if (check[z]==check[x]){
				bad=true;
				return;
			}
		}
	}
}

void v(){
	ll n, k; cin >> n >> k;
	bad=false;
	parent.assign(n+1, {});
	check.assign(n+1, -1);
	for (ll i=0; i<k; i++){
		ll a, b; cin >> a >> b;
		parent[a-1].push_back(b);
		parent[b].push_back(a-1);
	}
	ll out=-1;
	for (ll i=0; i<n+1; i++){
		if (check[i]==-1){
			out++;
			check[i]=0;
			dfs(i);
		}
		if (bad){
			cout << 0 << '\n';
			return;
		}
	}
	cout << pow(2, out) << '\n';
}

int main() {
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	ll t; cin >> t;
	while (t--) v();
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base12/60
1Elfogadva0/01ms508 KiB
2Hibás válasz0/017ms1400 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Hibás válasz0/235ms2220 KiB
8Hibás válasz0/234ms2412 KiB
9Hibás válasz0/234ms2356 KiB
10Hibás válasz0/234ms2136 KiB
11Hibás válasz0/234ms2332 KiB
12Hibás válasz0/232ms2356 KiB
13Hibás válasz0/229ms3124 KiB
14Hibás válasz0/230ms3144 KiB
15Hibás válasz0/229ms3124 KiB
16Hibás válasz0/232ms3268 KiB
17Hibás válasz0/232ms3244 KiB
18Hibás válasz0/230ms3124 KiB
19Hibás válasz0/235ms2356 KiB
20Hibás válasz0/235ms2356 KiB
21Hibás válasz0/235ms2356 KiB
22Hibás válasz0/234ms2456 KiB
23Hibás válasz0/235ms2808 KiB
24Hibás válasz0/235ms2612 KiB
25Hibás válasz0/234ms2612 KiB
26Hibás válasz0/230ms3132 KiB
27Hibás válasz0/235ms2380 KiB
28Hibás válasz0/229ms2100 KiB
29Hibás válasz0/216ms2284 KiB
30Hibás válasz0/216ms2188 KiB