2 条题解

  • 1
    @ 2021-10-16 15:27:15
    #include<bits/stdc++.h>
    using namespace std;
    int a[10001];
    void init(int n){
    	for(int i=0;i<=n;i++) a[i]=i;
    }
    int fa(int x){
    	if(x==a[x]) return x;
        a[x]=fa(a[x]);
        return a[x];
    }
    int main(){
    	int n,m;
    
    	cin>>n>>m;
    	init(n);
    	while(m--){
    		int op,x,y;
    		cin>>op>>x>>y;
    		x=fa(x);
    		y=fa(y);
    		if(op==1) a[x]=y;
    		else{
    			if(x==y) cout<<"Y"<<endl;
    			else cout<<"N"<<endl;
    		}
    	}
    	return 0;
    } 
    
    • 0
      @ 2022-1-19 11:04:18

      #include using namespace std; int n,m,a[10010],opt,x,y; void init(){ for(int i=1;i<=n;i++){ a[i]=i; } } int find(int x){ if(a[x]x)return x; a[x]=find(a[x]); return a[x]; } int main(){ cin>>n>>m; init(); for(int i=1;i<=m;i++){ cin>>opt>>x>>y; x=find(x); y=find(y); if(opt1){ a[x]=y; }else{ if(x==y){ cout<<"Y"<<endl; }else{ cout<<"N"<<endl; } } } }

      • 1

      信息

      ID
      1347
      时间
      500ms
      内存
      64MiB
      难度
      3
      标签
      递交数
      28
      已通过
      19
      上传者