[BZOJ2456/ZOJ2132]mode/The Most Frequent Number
题目链接:
日常锻炼思维(虽然这题很简单就是了)
因为众数个数超过\(\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;
}