L2-024 部落

传送门

#include <bits/stdc++.h>
using namespace std;

const int maxn = 1e4 + 10;
int n,k,q,fa[maxn],kk[maxn];

int find(int x) {
	return x == fa[x] ? x : fa[x] = find(fa[x]);
}

void merge(int x,int y) {
	fa[find(x)] = find(y);
}

int main() {
	ios::sync_with_stdio(0);
	for(int i = 0; i < maxn; i++)
		fa[i] = i;
	cin >> n;
	int maxx = 0;
	while(n--) {
		cin >> k;
		for(int i = 0; i < k; i++) {
			cin >> kk[i];
			maxx = max(maxx,kk[i]);
		}
		for(int i = 0; i < k; i++) {
			for(int j = i + 1;j < k; j++)
				merge(kk[i],kk[j]);
		}
	}
	cin >> q;
	cout << maxx << " ";
	int cnt = 0;
	for(int i = 1; i <= maxx; i++) {
		if(fa[i]==i) cnt++;
	}
	cout << cnt << endl;
	while(q--) {
		int x,y;
		cin >> x >> y;
		if(find(x) == find(y))
			cout << "Y" << endl;
		else cout << "N" << endl;
	}
	return 0;
}
上一篇:急用宝客服电话——全国24小时帮助中心


下一篇:小金鱼客服电话——全国24小时帮助中心