求数列中众数 & 唯一出现为奇次数
前言:
我们的生活中经常有很多令人叫绝的优秀算法。他们往往既不冗长,也不笨拙。
蒟蒻的我能写暴力!虽然不是说不可以这么写算法,只是毕竟是算法竞赛,这样搭建的程序终究还是经不起考验的。
就如大算法(大?),让小算法组合成大算法,虽然有时不太容易能看出整体的效率,那我们为何不让每部分最优呢。(最优子结构?)
时间,空间, 我们不仅要能互换代价,还要让它们同时缩小!
正文:
(- 、 -) 嗯...
那个,啥,以上的前言等于啥都没说。不用管我就是了。 我们直接看题,先是第一题,~题是我啦~。
BZOJ 2456 : mode
这个是bzoj的原题。(claris!)
题意:给你一个n个数的数列,其中某个数出现了超过n div 2次即众数,请你找出那个数。
看起来怎么样,1mb的内存,让你想到了什么,要不先自己分析一下吧...
...
...
...
...
...
...
...
...
...
想出来了么,是正解么,既然如此,那我就不废话了。
题解:抓住众数的性质,让相邻数相互抵消,于是只有数量大于 (n div 2 )的素数 才能幸存下来!
时间: 2024-10-07 06:55:10