L2-024 部落 (25 分)

并查集裸题。

const int N=10010;
int p[N];
int n,m,maxid;
int find(int x)
{
if(x != p[x]) p[x]=find(p[x]);
return p[x];
}
int main()
{
cin>>n;
for(int i=1;i<N;i++) p[i]=i;
while(n--)
{
int k;
cin>>k;
vector<int> a(k);
for(int i=0;i<k;i++) cin>>a[i],maxid=max(maxid,a[i]);
for(int i=0;i<k-1;i++)
{
int pa=find(a[i]),pb=find(a[i+1]);
if(pa != pb)
p[pa]=pb;
}
}
int group=0;
for(int i=1;i<=maxid;i++)
if(p[i] == i)
group++;
cout<<maxid<<' '<<group<<endl;
cin>>m;
while(m--)
{
int a,b;
cin>>a>>b;
int pa=find(a),pb=find(b);
if(pa != pb) puts("N");
else puts("Y");
}
//system("pause");
return 0;
}
posted @   Dazzling!  阅读(30)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示