[BZOJ2456]mode
题意:求一个数列出现次数>1/2的数。空间:1M。
显然不能存数字,但是因为这个众数的定义和平常的不一样,所以就非常可做了。
用别的数顶掉之前的数,YY一下发现最后留下的就是出现次数>1/2的了。
#include <cstdio>
int i,n,cnt,ans;
int main() {
scanf("%d",&n);
while(n--) {
scanf("%d",&i);
if(cnt==0) ans=i;
if(i==ans) cnt++;else cnt--;
}
printf("%d",ans);
}
我是咸鱼。转载博客请征得博主同意Orz