2.数据结构:3.合并集合
- 游戏开发
- 2025-09-16 08:00:01

原题链接
#include<algorithm> #include<cstring> #include<iostream> using namespace std; const int N=100010; int p[N]; int find(int x){ if(p[x]!=x){ p[x]=find(p[x]); } return p[x]; } int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++){ p[i]=i; } while(m--){ char op[2]; int a,b; cin>>op>>a>>b; if(op[0]=='M'){ if(find(p[a])!=find(p[b])){ p[find(a)]=find(b); } }else{ if(find(a)==find(b)){ puts("Yes"); }else{ puts("No"); } } } return 0; }维护每个点的根节点,合并是修改根节点,查询也是比较根节点。
2.数据结构:3.合并集合由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“2.数据结构:3.合并集合”