TouchStone
  请登录后使用
登录 注册
 系统首页  练习题库  考试列表  判题结果  问题讨论与解答  统计信息与排名
  • 首页
  • 题库
  • P2751
  • 题目
  • P2751【Violet VI】蒲公英
    限制 : 时间限制 : 30000 MS   空间限制 : 524288 KB
    问题描述

    背景
    亲爱的哥哥:
    你在那个城市里面过得好吗?
    我在家里面最近很开心呢。昨天晚上奶奶给我讲了那个叫「绝望」的大坏蛋的故事的说!
    它把人们的房子和田地搞坏,还有好多小朋友也被它杀掉了。我觉得把那么可怕的怪物召唤
    出来的那个坏蛋也很坏呢。不过奶奶说他是很难受的时候才做出这样的事的……
    最近村子里长出了一大片一大片的蒲公英。一刮风,这些蒲公英就能飘到好远的地方了
    呢。我觉得要是它们能飘到那个城市里面,让哥哥看看就好了呢!
    哥哥你要快点回来哦!
    爱你的妹妹Violet
    Azure 读完这封信之后微笑了一下。
    “蒲公英吗……”

    题目描述
    在乡下的小路旁种着许多蒲公英,而我们的问题正是与这些蒲公英有关。
    为了简化起见,我们把所有的蒲公英看成一个长度为n的序列(a1,a2,a3,a4,…an),其中
    ai为一个正整数,表示第i棵蒲公英的种类编号。
    而每次询问一个区间[l,r],你需要回答区间里出现次数最多的是哪种蒲公英,如果有
    若干种蒲公英出现次数相同,则输出种类编号最小的那个。
    注意,你的算法必须是在线的。

    输入格式

    第一行两个整数n,m,表示有n株蒲公英,m次询问。
    接下来一行 n 个空格分隔的整数ai,表示蒲公英的种类
    再接下来m行每行两个整数l0,r0,我们令上次询问的结果为x(如果这是第一次询问,
    则x=0)。
    令l=(l0+x-1)mod n +1,r=(r0+x-1)mod 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<=ai<=10^9

    推荐阅读 http://hzwer.com/8053.html