• 洛谷P1892 团伙


    SDSC Day 3的题.(的弱化版
    这题算是一个并查集的板子题。
    答题思路:
    对每个点i建立i+n这个点
    是朋友进入一个并查集
    不是的话把x,y+n x+n,y这两个并查集连接起来
    很简单的思路。
    C++代码:

    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <string>
    #include <queue>
    #include <algorithm>
    #include <string>
    #define INF 0x3f3f3f3f
    #define inf 0x3f
    #define maxn 200001
    #define maxm 10001
    #define ll long long
    using namespace std;
    int n, m, fa[maxn], x, y;
    char p;
    void clear()
    {
        for (int i = 1; i <= n; i++)
        {
            fa[i] = i;
        }
    }
    int find(int x)
    {
        if (fa[x] == x)
            return x;
        return fa[x] = find(fa[x]);
    }
    void merge(int x, int y)
    {
        int xx = find(x);
        int yy = find(y);
        if (xx == yy)
            return;
        fa[xx] = yy;
    }
    int ener[201010];
    
    int main()
    {
        memset(ener, 0, sizeof(ener));
        cin >> n >> m;
        clear();
        for (int i = 1; i <= m; i++)
        {
            std::string str;
            cin >> str >> x >> y;
            p = str[0];
            if (p == 'F')
                merge(x, y);
            else
            {
                if (ener[x] == 0)
                {
                    ener[x] = find(y);
                }
                else
                    merge(y, ener[x]);
                if (ener[y] == 0)
                    ener[y] = find(x);
                else
                    merge(x, ener[y]);
            }
        }
        int ans = 0;
        int sum[maxn];
        memset(sum, 0, sizeof(sum));
        for (int i = 1; i <= n; i++)
        {
            if (find(i) != 0)
                sum[find(i)]++;
        }
        for (int i = 1; i <= n; i++)
        {
            if (sum[i])
                ans++;
        }
        cout << ans;
        return 0;
    }
  • 相关阅读:
    SQL Server 的事务和锁(一)
    Sql server脏读、更新丢失、不可重复读、幻象读问题及解决方案
    Sql server锁机制
    Windows系统变量列表
    windows运行命令大全
    C# 捕获数据库自定义异常
    sql日期函数
    C# ado.net 操作存储过程(二)
    C# ado.net 操作(一)
    url传参特殊字符问题(+、%、#等)
  • 原文地址:https://www.cnblogs.com/kenlig/p/9433029.html
Copyright © 2020-2023  润新知