出现UKE,只有30分,求解

P1551 亲戚

喔...找到错误了,unionSet里u = find(u),v = find(v) ```cpp #include <iostream> #include <cstdio> using namespace std; int xi,yi; int fa[5007]; int n,m,p; int find(int x){ return fa[x] == x ? x : fa[x] = find(fa[x]); } int unionSet(int u,int v){ u = find(u),v = find(v); if(u != v){ fa[u] = v; } } int main(){ scanf("%d%d%d",&n,&m,&p); for(int i=1;i<=n;i++) fa[i]=i; for(int i=1;i<=m;i++){ scanf("%d%d",&xi,&yi); unionSet(xi,yi); } int u,v; for(int i=1;i<=p;i++){ scanf("%d%d",&u,&v); if(find(u) == find(v)) printf("Yes\n"); else printf("No\n"); } return 0; } ```
by Ivanhunt @ 2017-10-30 23:15:48


|