1118 Birds in Forest (25 分)难度: 一般 / 知识点: 并查集
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1118 Birds in Forest (25 分)难度: 一般 / 知识点: 并查集相关的知识,希望对你有一定的参考价值。
https://pintia.cn/problem-sets/994805342720868352/problems/994805354108403712
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10;
int p[N],n,q;
unordered_map<int,int>cnt;
int find(int x)
if(x!=p[x]) p[x]=find(p[x]);
return p[x];
int main(void)
cin>>n;
for(int i=0;i<N;i++) p[i]=i;
for(int i=0;i<n;i++)
int m; cin>>m;
int a[105];
for(int j=0;j<m;j++)
cin>>a[j];
if(j) p[find(a[j])]=find(a[j-1]);
cnt[a[j]]++;
int ans1=0,ans2=0;
for(int i=0;i<N;i++)
if(cnt[i]&&i==p[i]) ans1++;//点存在,且是根节点
if(cnt[i]) ans2++;
cout<<ans1<<" "<<ans2<<endl;
cin>>q;
while(q--)
int a,b; cin>>a>>b;
if(find(a)!=find(b)) puts("No");
else puts("Yes");
return 0;
以上是关于1118 Birds in Forest (25 分)难度: 一般 / 知识点: 并查集的主要内容,如果未能解决你的问题,请参考以下文章
1118 Birds in Forest (25分) 并查集
PAT A 1118. Birds in Forest (25)