NOJ-1593:並查集(一)-西工大演算法
阿新 • • 發佈:2019-02-12
#include <stdio.h> #include <stdlib.h> int n, m; int p[1005]; int find(int i); int main() { int i; int a, b; scanf("%d%d", &n, &m); for(i = 0; i < n; i++) { p[i] = i; } for(i = 0; i < m; i++) { scanf("%d%d", &a, &b); p[find(b)] = find(a); } scanf("%d%d", &a, &b); if(find(a) == find(b)) { printf("Yes\n"); } else { printf("No\n"); } return 0; } int find(int i) { int j = i; while(j != p[j]) { j = p[j]; } p[i] = j; return j; }