7-5 部落 (25 分)
#include <bits/stdc++.h> using namespace std; int pre[30005]; int root[35500]; int find(int a) { if(pre[a]!=a) { return find(pre[a]); } else return pre[a]; } void join(int a,int b) { int fa=find(a); int fb=find(b); if(fa!=fb) { pre[fa]=fb; } } int main() { int n; cin>>n; for(int i=0;i<=3000;i++) { pre[i]=i; } int num=0; while(n--) { int k; cin>>k; int a[50000]; for(int i=1;i<=k;i++) { cin>>a[i]; num=max(num,a[i]); } for(int i=2;i<=k;i++) { join(a[i],a[i-1]); } } int ans=0; for(int i=1;i<=num;i++) { if(pre[i]==i) ans++; } cout<<num<<" "<<ans<<endl; int q; cin>>q; while(q--) { int a; int b; cin>>a>>b; a=find(a); b=find(b); if(a==b) cout<<"Y"<<endl; else cout<<"N"<<endl; } return 0; }
本文作者:kingwzun
本文链接:https://www.cnblogs.com/kingwz/p/16112905.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步