• CCCC L2 部落 L3社交集群


    https://www.patest.cn/contests/gplt/L2-024

    题解:部落是并查集模板题。

        社交集群用并查集暴力有23分

    坑:写了半天,发现自己并查集没怎么学明白,现在才搞懂;

      find :return f[x]=find(f[x]);

      询问:if(find(x)==find(y))

      合并:xx=find(x),yy=find(y);f[xx]=yy;

    #include<iostream>
    #include<algorithm>
    #include<stdio.h>
    #include<string>
    #include<map>
    #include<vector>
    #define _for(i, a, b) for (int i = (a); i<(b); ++i)
    using namespace std;
    typedef long long ll;
    const int N = 1e4 + 5;
    int f[N];
    int find(int x) {
        return f[x] == x ? x : f[x] = find(f[x]);
    };
    void un(int x, int y) {
        int xx = find(x);
        int yy = find(y);
         f[xx]= yy ;
    };
    int main() {
        int n;
        int mn = 0;
        cin >> n;
        _for(i, 0, N) f[i] = i;
        while (n--) {
            int x;
            cin >> x;
            int y1; cin >> y1; mn = max(mn, y1);
            _for(i, 0, x - 1)
            {
                int y;
                cin >> y; mn = max(mn, y);
                un(y1, y);
            }
        }
        int cnt = 0;
        _for(i, 0, mn) {
            if (f[i+1] == i+1)cnt++;
        }
        cout << mn << ' ' << cnt << endl;
        int q;
        cin >> q;
        while (q--) {
            int x, y;
            cin >> x >> y;
            if (find(x) == find(y))cout << "Y" << endl;
            else cout << "N" << endl;
        }
    
    }
    成功的路并不拥挤,因为大部分人都在颓(笑)
  • 相关阅读:
    .net http大文件断点续传上传
    asp.net http大文件断点续传上传
    VUE http大文件断点续传上传
    JavaScript http大文件断点续传上传
    ceph之查看osd上pg的分布
    linux 文件系统
    Ceph对象存储网关中的索引工作原理<转>
    ceph 参数说明<转>
    iptables 配置
    c++ 回调类成员函数实现
  • 原文地址:https://www.cnblogs.com/SuuT/p/8669647.html
Copyright © 2020-2023  润新知