1.2026 L9 梆梆不梆梆
使用并查集及路径压缩,板子要记牢
#include<bits/stdc++.h>
using namespace std;
#define M 10004
int n,m,fa[M];
int ff(int x)
{
if(x!=fa[x])
fa[x]=ff(fa[x]);
return fa[x];
}
signed main()
{
priority_queue<int,vector<int>,greater<int> > q[M];
priority_queue<int,vector<int>,greater<int> > ans;
cin>>n>>m;
int T=n;
for(int i=1;i<=m;i++)
fa[i]=i;
while(T--)
{
int len,num,num1;
cin>>len>>num1;
for(int i=2;i<=len;i++)
{
cin>>num;
int x=ff(num1);
int y=ff(num);
if(x!=y)
fa[x]=y;
}
}
for(int i=1;i<=m;i++)
{
// cout<<i<<" "<<ff(i)<<endl;
q[ff(i)].push(i);
}
int sum=0;
for(int i=1;i<=m;i++)
if(ff(i)==i)
{
ans.push(q[i].top());
sum++;
}
while(!ans.empty())
{
cout<<ans.top();
ans.pop();
sum--;
if(sum!=0)
cout<<" ";
}
// cout<<"d";
return 0;
}
2.2023 L1-7 谷歌的招聘
欧拉筛写了一半