227592026-01-15 18:06:56algoproTrükkcpp17Elfogadva 60/6085ms1856 KiB
// UUID: 30952f48-039f-4fe9-bab9-ad568dcdd2be
#include <bits/stdc++.h>
#include <vector>
using namespace std;


vector<vector<int>> feltetelek;
vector<bool> done;
vector<int> p;
bool err;
void melysegi(int v) {
	done[v] = true;
	for (int i:feltetelek[v]) {
		if (!done[i]) {
			if (p[v] == 0) p[i] = 1;
			else p[i] = 0;
			melysegi(i);
		}
		else if (p[i] == p[v]) {
			err = true;
		}
	}
}
int main() {
	int t;cin >> t;
	for (int T = 0;T < t;T++) {
		err = false;
		int n,k;cin >> n >> k;
		feltetelek.clear();
		done.clear();
		n++;
		feltetelek.resize(n);
		done.resize(n);
		p = vector<int>(n, -1);
		for (int i = 0;i < k;i++) {
			int a,b;cin >> a >> b;
			b++;
			feltetelek[a - 1].push_back(b - 1);
			feltetelek[b - 1].push_back(a - 1);
		}
		int c = 0;
		for (int i = 0;i < n;i++) {
			if (!done[i]) {
				c++;
				p[i] = 0;
				melysegi(i);
			}
		}
		if (err) cout << 0 << endl;
		else {
			int val = 1;
			for (int i = 1;i < c;i++) {
				val = (2 * val) % 1000000007;
			}
			cout << val << endl;
		}
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base60/60
1Elfogadva0/01ms316 KiB
2Elfogadva0/041ms1076 KiB
3Elfogadva3/31ms500 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva2/283ms1588 KiB
8Elfogadva2/283ms1752 KiB
9Elfogadva2/283ms1600 KiB
10Elfogadva2/282ms1740 KiB
11Elfogadva2/283ms1588 KiB
12Elfogadva2/283ms1656 KiB
13Elfogadva2/271ms1332 KiB
14Elfogadva2/271ms1400 KiB
15Elfogadva2/271ms1344 KiB
16Elfogadva2/271ms1336 KiB
17Elfogadva2/271ms1588 KiB
18Elfogadva2/271ms1500 KiB
19Elfogadva2/285ms1836 KiB
20Elfogadva2/283ms1840 KiB
21Elfogadva2/282ms1856 KiB
22Elfogadva2/282ms1788 KiB
23Elfogadva2/282ms1844 KiB
24Elfogadva2/283ms1720 KiB
25Elfogadva2/282ms1808 KiB
26Elfogadva2/271ms1488 KiB
27Elfogadva2/283ms1684 KiB
28Elfogadva2/278ms1360 KiB
29Elfogadva2/235ms1076 KiB
30Elfogadva2/235ms1076 KiB