acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 第二!

    userId_undefined

    哒烧叶

    27阅读
    1回复
    1点赞
  • 题解

    userId_undefined

    法兰西玫瑰

    26阅读
    0回复
    0点赞
  • 第三!

    userId_undefined

    fufu

    19阅读
    0回复
    0点赞
  • 题解

    userId_undefined

    Alxe

    6阅读
    0回复
    0点赞
  • A567.亲戚1

    #include<bits/stdc++.h> using namespace std; const int maxn = 5e3 + 9; int fa[maxn]; int get(int x){//找到祖宗,不是的话向上递归 if (fa[x] == x) return x; return get(fa[x]); } void merge(int x,int y){//合并集合 fa[get(x)] = get(y); } int main(){ int n,m,p; cin >> n >> m >> p; for(int i = 1;i <= n;i ++) fa[i] = i; for(int i = 0;i < m;i ++){ int u,v; cin >> u >> v; if(get(u) != get(v)) merge(u,v);//如果不是同祖宗,合并 } while(p--) { int x,y; cin >> x >> y; if(get(x) == get(y)) cout << "Yes" << '\n';//判断是否是亲戚 else cout << "No" << "\n"; } return 0; }

    userId_undefined

    烟花易冷

    2阅读
    0回复
    0点赞
首页