题目名称 3231. 蒲公英
输入输出 Dandelion.in/out
难度等级 ★★★☆
时间限制 2000 ms (2 s)
内存限制 256 MiB
测试数据 20
题目来源 GravatarLGLJ 于2019-08-23加入
开放分组 全部用户
提交状态
分类标签
分块
分享题解
通过:17, 提交:43, 通过率:39.53%
Gravatar┭┮﹏┭┮ 100 2.255 s 140.22 MiB C++
Gravatarlihaoze 100 2.885 s 90.44 MiB C++
Gravatar增强型图元文件 100 2.981 s 32.03 MiB C++
GravatarLGLJ 100 3.570 s 223.68 MiB C++
GravatarLGLJ 100 3.571 s 210.99 MiB C++
GravatarLGLJ 100 3.587 s 223.40 MiB C++
GravatarHale 100 3.734 s 15.56 MiB C++
Gravatarlihaoze 100 3.962 s 8.78 MiB C++
Gravatar数声风笛ovo 100 4.019 s 235.98 MiB C++
Gravatarop_组撒头屯 100 4.110 s 112.77 MiB C++
本题关联比赛
SYOI 专题 4:分块(根号杂烩)
关于 蒲公英 的近10条评论(全部评论)
稍微卡内存
Gravatar┭┮﹏┭┮
2024-04-10 19:50 3楼
参考clj大佬论文《区间众数命题报告》,预处理每个块中数的数量,相比《进阶指南》的二分做法效率显著提高(具体来说,同开O2的情况下快了将近1s),时间复杂度从$O((n + m) \sqrt n \log n)$ 优化至 $O((n + m) \sqrt n)$。唯一的缺点就是代码难度剧增(调试起来很痛苦,比如我数组大小是按照 $O(n^{1.5})$ 来的,但是分块大小还是选择的 $O(\sqrt{n \log n})$,导致调试了一下午发现不了问题,包括边界问题也调整了半天)。至于WJMZBMR神犇的论文可以参考这里 Onedrive,很有参考价值
Gravatarlihaoze
2022-08-24 21:02 2楼
神仙分块,费脑子还费时间
GravatarHale
2019-08-24 15:55 1楼

3231. 蒲公英

★★★☆   输入文件:Dandelion.in   输出文件:Dandelion.out   简单对比
时间限制:2 s   内存限制:256 MiB

【题目背景】

亲爱的哥哥:

你在那个城市里面过得好吗?

我在家里面最近很开心呢。昨天晚上奶奶给我讲了那个叫「绝望」的大坏蛋的故事的说!它把人们的房子和田地搞坏,还有好多小朋友也被它杀掉了。我觉得把那么可怕的怪物召唤出来的那个坏蛋也很坏呢。不过奶奶说他是很难受的时候才做出这样的事的……

最近村子里长出了一大片一大片的蒲公英。一刮风,这些蒲公英就能飘到好远的地方了呢。我觉得要是它们能飘到那个城市里面,让哥哥看看就好了呢!

哥哥你要快点回来哦!

爱你的妹妹 $\rm Violet$

$\rm Azure$ 读完这封信之后微笑了一下。

“蒲公英吗……”

【题目描述】

在乡下的小路旁种着许多蒲公英,而我们的问题正是与这些蒲公英有关。

为了简化起见,我们把所有的蒲公英看成一个长度为 $n$ 的序列 ($a_1,a_2..a_n$),其中 $a_i$ 为一个正整数,表示第 $i$ 棵蒲公英的种类编号。

而每次询问一个区间 $[l,r]$,你需要回答区间里出现次数最多的是哪种蒲公英,如果有若干种蒲公英出现次数相同,则输出种类编号最小的那个。

注意,你的算法必须是在线的。

【输入格式】

第一行两个整数 $n,m$,表示有 $n$ 株蒲公英,$m$ 次询问。

接下来一行 $n$ 个空格隔开的整数 $a_i$, 表示蒲公英的种类。

再接下来 $m$ 行每行两个整数 $l_0,r_0$,我们令上次询问的结果为 $x$(如果这是第一次询问,则 $x=0$)。

令 $l=(l_0+x-1) \bmod \ n +1,r=(r_0+x-1) \bmod \ n +1$,如果 $l>r$ ,则交换 $l,r$。

最终的询问区间为 $[l,r]$。

【输出格式】

输出 $m$ 行。每行一个整数,表示每次询问的结果。

【样例输入】

6 3
1 2 3 2 1 2
1 5
3 6
1 5

【样例输出】

1
2
1

【提示】

对于 $20$% 的数据,保证 $1≤n,m≤3000$。

对于 $100$% 的数据,保证 $1≤n≤40000,1≤m≤50000,1≤a_i≤10^9$。

【来源】

《算法竞赛进阶指南》