212812026-01-12 17:46:19algoproTrükkcpp17Hibás válasz 35/6078ms2216 KiB
// UUID: 1f26d2e8-8841-413e-8bd3-0fb3c0d6b46c
#include <bits/stdc++.h>
using namespace std;

vector<vector<int>> a;
vector<int> vis;

bool dfs(int v){
	for(int x: a[v]){
		if(vis[x]==0){
			vis[x]=vis[v]^3;
			dfs(x);
		}else if(vis[x]==vis[v]){
			return false;
		}
	}
	return true;
}

int MOD=1e9+7;


int main() {
	int t;cin>>t;
	while(t--){
		int n, k;cin>>n>>k;
		a.assign(n+1, {});
		for(int i=0;i<k;i++){
			int x, y;cin>>x>>y;
			x--;a[x].push_back(y);
			a[y].push_back(x);
		}
		vis.assign(n+1, 0);
		int komp=0;
		bool ans=true;
		for(int i=0;i<=n;i++){
			if(vis[i]==0){
				vis[i]=1;
				bool b=dfs(i);
				if(!b) ans=b;
				komp++;
			}
		}
		if(!ans){
			cout<<0<<'\n';continue;
		}
		int answ=1;
		for(int i=0;i<komp-1;i++){
			answ*=2;answ%=MOD;
		}
		cout<<answ<<'\n';
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base35/60
1Elfogadva0/01ms316 KiB
2Elfogadva0/037ms1220 KiB
3Elfogadva3/31ms508 KiB
4Hibás válasz0/31ms316 KiB
5Elfogadva3/31ms332 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva2/278ms1876 KiB
8Hibás válasz0/276ms1756 KiB
9Hibás válasz0/278ms1744 KiB
10Elfogadva2/275ms1640 KiB
11Hibás válasz0/276ms1844 KiB
12Elfogadva2/276ms1884 KiB
13Elfogadva2/272ms1968 KiB
14Hibás válasz0/272ms1932 KiB
15Hibás válasz0/274ms1996 KiB
16Elfogadva2/272ms2140 KiB
17Hibás válasz0/272ms2216 KiB
18Hibás válasz0/271ms2100 KiB
19Elfogadva2/276ms1864 KiB
20Hibás válasz0/275ms1844 KiB
21Hibás válasz0/275ms1840 KiB
22Elfogadva2/276ms1840 KiB
23Elfogadva2/276ms1848 KiB
24Elfogadva2/276ms1844 KiB
25Elfogadva2/276ms1844 KiB
26Elfogadva2/271ms2044 KiB
27Hibás válasz0/276ms2036 KiB
28Elfogadva2/274ms1780 KiB
29Elfogadva2/235ms1588 KiB
30Hibás válasz0/235ms1588 KiB