题目 3116

蒲公英

查看题解 ↗GitHub ↗如何评测
题号
3116
时间限制
1000 ms
内存限制
128 MB
标签
分块数据结构

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

为了简化起见,我们把所有的蒲公英看成一个长度为 n 的序列a1,a2,…,ana_1,a_2,\dots,a_n,其中aia_i为一个正整数,表示第 i 棵蒲公英的种类编号。

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

输入格式

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

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

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

令l=(l0l_0+x-1) mod n+1,r=(r0r_0+x-1) mod n+1,如果l>r,则交换l,r。

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

输出格式

输出 m 行。

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

数据范围

1≤n≤400001 \le n \le 40000,
1≤m≤500001 \le m \le 50000,
1≤ai≤1091 \le a_i \le 10^9

输入样例:

文本
6 3 
1 2 3 2 1 2 
1 5 
3 6 
1 5

输出样例:

文本
1 
2 
1

来源

  • 《算法竞赛进阶指南》
  • acwing 可能含有视频讲解

数据下载

题目 3116 的公开数据

正在读取文件列表…

常用命令

题目 3116 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。