最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 创建军队

    正文概述 陈老师   2026-01-20 15:15:43  

    题目描述

    在游戏中,小达可以雇佣 nn 个不同的战士,第 ii 个战士的类型是 aia_i。小达想要从这些战士里挑选一些战士组成一个平衡型军队——如果游戏中每种类型的战士在军队中都不超过 kk 个,那么这只军队就被成为平衡型军队。当然,小达希望自己的军队越大越好。

    让事情变得更复杂的是,小达必须考虑 qq 个不同的组建军队的计划。第 ii 个计划只允许他雇佣人数不少于 lil_i 也不多于 rir_i 的战士。

    请你帮助小达确定每个计划的平衡型军队的最大规模。

    请注意,计划是以修改过的方式给出的。详情请参见输入部分。

    输入格式

    第一行,两个整数 nnkk1n,k,1000001 \leq n,k, \leq 100000

    第二行,nn 个整数 ai (1ai100000)a_i~(1 \leq a_i \leq 100000)

    第三行,一个整数 q (1q100000)q~(1 \leq q \leq 100000)

    接下来是 qq 行。第 ii 行包含两个数字 xix_iyiy_i,他们代表第 ii 次计划(1xi, yin1 \leq x_i,~y_i \leq n)。

    你必须记住上一个计划的答案(我们称之为 lastlast)。最开始 last=0last = 0。然后,为了恢复第 ii 次计划的 lil_irir_i 值,我们必须执行以下操作:

    1. li=((xi+last)modn)+1l_i = ((x_i + last) \mod n) + 1;
    2. ri=((yi+last)modn)+1r_i = ((y_i + last) \mod n) + 1;
    3. 如果是 li>ril_i > r_i,交换 lil_irir_i

    输出格式

    打印 qq 个数字。在考虑第 ii 个计划时,第 ii 个数字必须等于平衡型军队的最大规模。

    样例

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

    提示

    样例 1 解释

    真正的计划是:

    1. 1 2
    2. 1 6
    3. 6 6
    4. 2 4
    5. 4 6

    数据范围

    对于 30%30 \% 的数据满足 1n,k,ai,q1001 \leq n,k,a_i,q \leq 100

    对于 100%100 \% 的数据满足 1n,k,ai,q1051 \leq n,k,a_i,q \leq {10}^5

    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 创建军队