[Violet 6]蒲公英

Posted lcxer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Violet 6]蒲公英相关的知识,希望对你有一定的参考价值。

传送门

这个题是我晚自习的时候看到的,那个时候觉得这个题好简单啊,一上手才发现这个题好难写啊,调了好久都没调对
算法是分块!!
很显然众数不能直接合并,那么我们可以考虑每个块上记录这个块的众数。
对于每个询问,它可能包含多个块,由于众数不好合并,所以我们需要记录任意两个块之间的众数,这个直接循环预处理就好了
很显然,对于每个询问区间([L,R]),它的众数只可能是它包含的块的众数和多出来的那两段的数
如何统计那两段多出来的数在这个区间出现的次数?
考虑将每个数的位置存入vector中,每次二分查找就行了。
记住离散化!

以上是关于[Violet 6]蒲公英的主要内容,如果未能解决你的问题,请参考以下文章

BZOJ2724[Violet 6]蒲公英 分块+二分

[bzoj2724] [Violet 6]蒲公英

BZOJ 2724 2724: [Violet 6]蒲公英 (区间众数不带修改版本)

[Violet 6]蒲公英

bzoj 2724: [Violet 6]蒲公英

巴蜀3540 -- Violet 6 最终话蒲公英