20求调
  • 板块P1551 亲戚
  • 楼主bangke
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/8/29 16:32
  • 上次更新2024/8/29 19:39:36
查看原帖
20求调
1397811
bangke楼主2024/8/29 16:32
#include<bits/stdc++.h>
using namespace std;
int f[5050],n,m,q,x,y;
int find(int x){
    return (x=f[x])?x:find(f[x]);
}
void merge(int x,int y){
    int fx=find(x),fy=find(y);
    if(fx!=fy) f[fy]=fx;
}
int main(){
    scanf("%d%d%d",&n,&m,&q);
    for(int i=1;i<=n;i++) f[i]=i;
    while(m--){
        scanf("%d%d",&x,&y);
        merge(x,y);
    }
    while(q--){
        scanf("%d%d",&x,&y);
        (find(x)==find(y))?printf("Yes\n"):printf("No\n");
    }
    return 0;
}

是不是条件运算符写错了?

2024/8/29 16:32
加载中...