1 条题解

  • 0
    @ 2025-8-24 21:37:15

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar PauGasol
    **

    搬运于2025-08-24 21:37:15,当前版本为作者最后更新于2017-10-07 12:18:00,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    其实这道题,众数的个数大于n的一半是十分重要的条件。

    这样我们就可以这么做。

    我们来yy一个小房子,每当有数进来的时候,如果房子是空的,那么将这个房子贴上自己的标签。

    如果房子里已经有和自己相同数字了,那么进去和它一起♂住。

    如果房子里有和自己不同的数字,带一个走出♂房♂子。

    最后房子里还剩下的数一定就是众数了。

    所以那个大于一半的条件很重要。

    ···cpp

    #include<cstdio>
    using namespace std;
    int n,m;
    int house,cnt;
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&m);
            if(house==m)cnt++;
            if(cnt==0){
                house=m;cnt++;
            }
            if(house!=m){
                cnt--;
            }
        }
        printf("%d",house);
        return 0;
    }
    

    ···

    • 1

    信息

    ID
    1418
    时间
    1000ms
    内存
    5MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者