• rqnoj343 mty的考验


    题目描述

    啊!几经周折.mty终于找到了他的偶像.他就是….fyc!

    可是fyc这样的高级人士可不喜欢一个人总是缠着他.于是他出了一道难题想考考mty.fyc有几个手下:陈乐天,舒步鸡,胡巍……现在fyc要去和别人fight,需要组建一值军队.军队的士兵在fyc的手下里选.

    要组建一个军队,必修满足军队中的每个人之间都有直接或间接的朋友关系.

    那么mty现在需要组建一支在满足上述情况下的人数最多的军队.

    问题规模:

    对于100%的数据,1<=n<=1000,1<=m<=500.

    输入格式第一行,两个数,n,m.(n表示fyc有几个手下m表示有m对朋友关系).

    一下m行,每行两个数.x[i],y[i].表示编号为x[i],y[i]的人是朋友.

    输出格式一个数,表示人数最多的军队的人数.

    样例输入

    5 3
    1 2
    2 3
    3 4

    样例输出

    4
    说明:1,2,3,4可组成一直军队.

    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int maxn = 1050;
    int n,m;
    int f[maxn],sz[maxn];
    int findf(int x){
        return x == f[x] ? x : f[x] = findf(f[x]);
    }
    int main(){
        cin>>n>>m;
        for(int i = 1;i <= n;i++){
            f[i] = i;
            sz[i] = 1;
        }
        int x,y,fx,fy;
        for(int i = 1;i <= m;i++){
            scanf("%d%d",&x,&y);
            fx = findf(x);
            fy = findf(y);
            if(fx == fy) continue; //notice
            if(sz[fx] > sz[fy]) swap(fx,fy);
            sz[fy] += sz[fx];
            f[fx] = fy;
        }
        int ans = 0;
        for(int i = 1;i <= n;i++){
            if(ans < sz[i]) ans = sz[i];
        }
        cout<<ans;
        return 0;
    }
    
    #include<iostream>
    using namespace std;
    int father[1001];
    int find(int x)
    {
        if(x!=father[x])father[x]=find(father[x]);
        return father[x];
    }
    void un(int f,int z)
    {
        father[z]=f;
    }
    int main()
    {
        int a[1001]={0};
        int ans=0;
        int n,m;
        int x,y;
        cin>>n>>m;
        for(int i=1;i<=n;i++)
        {
            father[i]=i;
        }
        for(int i=1;i<=m;i++)
        {
            cin>>x>>y;
            un(find(x),find(y));
        }
        for(int i=1;i<=n;i++)
        {
            a[find(i)]++;
            ans=max(a[find(i)],ans);
        }
        cout<<ans;
        //system("pause");
        return 0;
    }
  • 相关阅读:
    IntelliJ IDEA错误: 源值1.5已过时,将在未来所有版本中删除
    AcWing 311. 月之谜 数位dp
    AcWing 306. 杰拉尔德和巨型象棋 计数类DP
    AcWing 296. 清理班次2 线段树优化dp
    luogu P3052 [USACO12MAR]Cows in a Skyscraper G
    luogu P5664 Emiya 家今天的饭 容斥+dp
    AcWing 289. 环路运输 滑动窗口单调队列优化
    AcWing 288. 休息时间 滚动数组+分类讨论
    AcWing 287. 积蓄程度 树形dp,换根
    luogu P3842 [TJOI2007]线段 线性dp
  • 原文地址:https://www.cnblogs.com/hyfer/p/5878031.html
Copyright © 2020-2023  润新知