题解 | #DongDong认亲戚#

DongDong认亲戚

https://ac.nowcoder.com/acm/problem/23803

并查集AC代码+注释如下:

#include<bits/stdc++.h>
using namespace std;
int p[20005];
int get(int x){return p[x]==x?x:p[x]=get(p[x]);}//查询
void merge(int x,int y){p[get(x)]=get(y);}//合并
map<string,int>mp;//映射
int main(){
    int n,m;cin>>n>>m;
    for(int i=1;i<=n;i++){//输入
        string t;cin>>t;
        mp[t]=i;
    }
    for(int i=1;i<=n;i++)p[i]=i;//并查集初始化
    while(m--){
        int op;string s1,s2;cin>>op>>s1>>s2;
        if(op==1)merge(mp[s1],mp[s2]);//1
        else cout<<(get(mp[s1])==get(mp[s2]))<<'\n';//2
    }   
}
全部评论

相关推荐

09-20 09:17
已编辑
中国矿业大学 机械设计师
大连理工大学机械工程师:拖拉机研究院1.5
点赞 评论 收藏
分享
我补药上班:行情差,我同学在上海某上市公司(市值80亿左右)干硬件,试用期就让他们要么降薪要么离职😅
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务