[BZOJ2456/ZOJ2132]mode/The Most Frequent Number

题目链接:

BZOJ2456

ZOJ2132

日常锻炼思维(虽然这题很简单就是了

因为众数个数超过\(\frac n2\),那么若数列中有两个数不相同就消去,最后众数一定可以抵消掉所有其他数。

然后模拟即可。

#include <cstdio>

int n,a,c,x;
//a 当前数,c 当前数个数

int main()
{
    scanf("%d",&n);
    while(n--)
    {
        scanf("%d",&x);
        if(!c)a=x,c=1;//新数
        else if(a==x)++c;//相同,个数+1
        else --c;//不相同,抵消
    }
    printf("%d\n",a);
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/LanrTabe/p/10211612.html