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)

PAT 1118 Birds in Forest [一般]

1118 Birds in Forest (25 分)难度: 一般 / 知识点: 并查集

A1118 Birds in Forest (25分)

A1118 Birds in Forest (25分)