import java.util.*; import java.io.*; publicclassMain{ privatestaticint p[] = newint[100010]; //声明父节点; publicstaticvoidmain(String [] args)throws IOException { Scanner in = new Scanner(new BufferedInputStream(System.in)); BufferedWriter log = new BufferedWriter(new OutputStreamWriter(System.out)); int n = in.nextInt(); for(int i = 1 ; i <= n ; i ++)p[i] = i; int m = in.nextInt(); while(m -- != 0){ String op = in.next(); if(op.equals("M")){ int a = in.nextInt(); int b = in.nextInt(); p[find(a)] = find(b); }else{ int a = in.nextInt(); int b = in.nextInt(); if(find(a) == find(b))log.write("Yes\n"); else log.write("No\n"); } } log.flush(); log.close(); } //查找x节点的父亲 publicstaticintfind(int x){ if(p[x] != x) p[x] = find(p[x]); return p[x]; } }
publicstaticvoidmain(String[] args)throws IOException { Scanner in = new Scanner(new BufferedInputStream(System.in)); BufferedWriter log = new BufferedWriter(new OutputStreamWriter(System.out)); int n = in.nextInt(); int m = in.nextInt(); for(int i = 1 ; i <= n ; i ++){ p[i] = i; size[i] = 1; } while(m -- != 0){ String op = in.next(); if(op.equals("C")){
int a = in.nextInt(); int b = in.nextInt(); if(find(a) == find(b)) continue; size[find(b)] += size[find(a)]; p[find(a)] = b; }elseif(op.equals("Q1")){ int a = in.nextInt(); int b = in.nextInt(); if(find(a) == find(b))log.write("Yes\n"); else log.write("No\n"); }else{ int k = in.nextInt(); log.write(size[find(k)] + "\n"); } } log.flush(); log.close();