1 条题解

  • 0
    @ 2023-4-12 22:07:52
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const double pi=acos(-1.0);
    int n,m,t,k,fa[10005],cnt[10005],p[1005][1005];
    int Find(int son){
        return fa[son]==son?son:fa[son]=Find(fa[son]);	
    }
    void s(int x,int y){
        x=Find(x),y=Find(y);
        if(x!=y){fa[x]=y;cnt[y]+=cnt[x];}
    }
    int main(){
        while(cin>>n){
            for(int i=1;i<=n;i++){
                cin>>p[i][0];
                for(int j=1;j<=p[i][0];j++)cin>>p[i][j];
                fa[i]=i;
                cnt[i]=1;
            }
            for(int i=n;i>=1;i--){
                for(int j=1;j<=p[i][0];j++){
                    if(p[i][j]>i){
                        s(p[i][j],i);
                        if(cnt[i]>(n>>1)){cout<<i<<endl;return 0;}
                    }
                }
            }
        }
    }
    
    • 1

    信息

    ID
    1312
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    2
    已通过
    2
    上传者