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

[bzoj 2456]mode

时间:2017-05-27 21:50:39      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:color   desc   最好   esc   page   ref   mit   scanf   style   

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2456

mode

Time Limit: 1 Sec  Memory Limit: 1 MB
Submit: 4872  Solved: 2040
[Submit][Status][Discuss]

Description

给你一个n个数的数列,其中某个数出现了超过n div 2次即众数,请你找出那个数。

Input

第1行一个正整数n。
第2行n个正整数用空格隔开。

Output

    一行一个正整数表示那个众数。

Sample Input

5
3 2 3 1 3

Sample Output

3

HINT

 

100%的数据,n<=500000,数列中每个数<=maxlongint。

注意空间,反观定义的话我们可以考虑我们要找的众数。

如果把它与其他数打架的话,最后保留的一定是众数,两个相打,同时死亡。

这可能是最哲学的题解了。

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int i=1,a=0,b=0,c=0,d=0;
 5     scanf("%d%d",&a,&b);d=1;
 6     for(i=1;i<a;i++)
 7     {
 8         scanf("%d",&c);
 9         if(b==c)d++;
10         else
11         {
12             d--;
13             if(d==0){
14                 b=c,d=1;
15             }
16         }
17     }
18     printf("%d",b);
19     return 0;
20 }
21 

对了,最好交C的文件,而且别忘改回C++,别问我怎么知道的

[bzoj 2456]mode

标签:color   desc   最好   esc   page   ref   mit   scanf   style   

原文地址:http://www.cnblogs.com/kvrmnks/p/6914460.html

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