码迷,mamicode.com
首页 > 其他好文 > 详细

Luogu P2397 yyy loves Maths VI (mode)

时间:2018-07-26 21:16:34      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:时间   知识   solution   code   else   https   pre   class   love   

题目传送门

虽然只是一道黄题,但还是学到了一点新知识——

摩尔投票法

\(O(1)\)的内存,\(O(n)\)的时间来找出一串长度为n的数中的众数,前提是众数出现的次数要大于\(n/2\)

方法很简单:

for(int i=1;i<=n;i++){
    int x; scanf("%d",&x);
    if(ans==x) cnt++;
    else
      if(cnt==0) ans=x,cnt++;
      else cnt--;
}
    

因为众数的数量要大于\(n/2\),所以无论再怎么散,也至少有两个众数是连着的

Luogu P2397 yyy loves Maths VI (mode)

标签:时间   知识   solution   code   else   https   pre   class   love   

原文地址:https://www.cnblogs.com/wxl-Ezio/p/9373843.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!