首页 > 代码库 > 【机智题?】求数列中众数

【机智题?】求数列中众数

求数列中众数 & 唯一出现为奇次数

 

 

前言:

我们的生活中经常有很多令人叫绝的优秀算法。他们往往既不冗长,也不笨拙。

蒟蒻的我能写暴力!虽然不是说不可以这么写算法,只是毕竟是算法竞赛,这样搭建的程序终究还是经不起考验的。

就如大算法(大?),让小算法组合成大算法,虽然有时不太容易能看出整体的效率,那我们为何不让每部分最优呢。(最优子结构?)

时间,空间, 我们不仅要能互换代价,还要让它们同时缩小!

 

 

 

正文:

(-  、 -) 嗯...

那个,啥,以上的前言等于啥都没说。不用管我就是了。 我们直接看题,先是第一题,~题是我啦~。

BZOJ 2456  : mode

这个是bzoj的原题。(claris!)

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

看起来怎么样,1mb的内存,让你想到了什么,要不先自己分析一下吧...

...

...

...

...

...

...

...

...

...

想出来了么,是正解么,既然如此,那我就不废话了。

题解:抓住众数的性质,让相邻数相互抵消,于是只有数量大于 (n div 2 )的素数 才能幸存下来!

 

【机智题?】求数列中众数