bzoj2456 / P2397 yyy loves Maths VI (mode)

P2397 yyy loves Maths VI (mode)

神奇的摩尔投票法(大雾)

保证众数个数大于一半。

两两相消,剩下的那个必定是众数。

我们只要开2个变量,一个存个数,一个存值即可。

(luogu的数据卡快读???)

luogu P2397 code:

 1 #include<cstdio>
 2 using namespace std;
 3 int cnt,id,n,q;
 4 int main(){
 5     scanf("%d",&n);
 6     for(register int i=1;i<=n;++i){
 7         scanf("%d",&q);
 8         if(!cnt) cnt=1,id=q;
 9         else if(id==q) ++cnt;
10         else --cnt;
11     }printf("%d",id);
12     return 0;
13 }
View Code