BZOJ 2456: mode

传送门

解题思路

喆巨考我的题,我这么菜当然瞬间被考住,想了半天没想出来,后来喆巨讲了才突然大彻大悟。。
思路就是因为众数次数一定大于其他数出现次数的和,就可以拿其他数抵消众数,cnt为当前答案下前面这个答案比其他数多的情况。

代码

int n,cnt,ans,k;
int main(){
    __builtin_scanf("%d",&n);
    while(n--){
        __builtin_scanf("%d",&k);
        if(!cnt) ans=k,cnt=1;
        else if(k==ans) cnt++;
        else if(k!=ans) cnt--;
    }
    __builtin_printf("%d",ans);
    return 0;
}
原文地址:https://www.cnblogs.com/sdfzsyq/p/9676836.html