1. 程式人生 > >[BZOJ2456/ZOJ2132]mode/The Most Frequent Number

[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;
}