bzoj2456 mode (思路)

不能把数存下来。

于是来打擂台,如果新数和他不相等,cnt--,否则cnt++。如果cnt<=0了,那个新数就来把它顶掉,然后把cnt重置成1

最后在台上的就是那个次数大于N/2的众数

(连<bits/stdc++.h>都不能include..直接MLE)

 #include<cstdio>
using namespace std; int main(){
int N;scanf("%d",&N);
int lst=-,cnt=;
for(int i=;i<=N;i++){
int x;
scanf("%d",&x);
if(x==lst) cnt++;
else{
cnt--;
if(!cnt) lst=x,cnt=;
}
}printf("%d\n",lst); return ;
}
上一篇:未能从程序集“mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“System.Runtime.CompilerServices.TuppressIldasmAttribute”。已解决


下一篇:参观阿拉斯加进行产品培训[My representation]