#HK4992. 「POI 2023/2024 R2」Ciąg binarny

「POI 2023/2024 R2」Ciąg binarny

题目描述

题目译自 XXXI Olimpiada Informatyczna – II etap Ciąg binarny

Bajtocy 是二进制序列的狂热爱好者。对于给定的二进制序列 a1,a2,,asa_1, a_2, \ldots, a_s 和非负整数 kk,其 kk-近似序列定义为任意二进制序列 b1,b2,,bsb_1, b_2, \ldots, b_s,满足以下条件:

  1. 0biai10 \leq b_i \leq a_i \leq 1 对于 1is1 \leq i \leq s
  2. 位置 1is11 \leq i \leq s-1bibi+1b_i \neq b_{i+1} 的数量不超过 kk
  3. 序列和 b1+b2++bsb_1 + b_2 + \ldots + b_s 尽可能大。

Bajtocy 拥有一个心爱的二进制序列 x1,x2,,xSx_1, x_2, \ldots, x_S。由于序列可能极长,采用压缩形式输入:由 nn 个正整数 d1,d2,,dnd_1, d_2, \ldots, d_n 表示,序列从 d1d_111 开始,接着 d2d_200d3d_311,依此类推,形式为 1d10d21d31^{d_1} 0^{d_2} 1^{d_3} \ldots

你的任务是帮助 Bajtocy 计算其心爱序列某些连续片段的 kk-近似序列和。具体为,回答 qq 次查询,每查询包含整数 kk 和两个整数 l,rl, r,需计算序列 xl,xl+1,,xrx_l, x_{l+1}, \ldots, x_rkk-近似序列和。

输入格式

第一行包含两个整数 n,qn, q (1n,q1000000)(1 \leq n, q \leq 1000000),分别表示序列压缩描述的长度和查询次数。

第二行包含 nn 个正整数 d1,d2,,dnd_1, d_2, \ldots, d_n (1S109,S=d1+d2++dn)(1 \leq S \leq 10^9, S = d_1 + d_2 + \ldots + d_n),表示序列中各块的长度。

接下来的 qq 行,每行包含三个整数 li,ri,kil_i, r_i, k_i (1liriS,0ki109)(1 \leq l_i \leq r_i \leq S, 0 \leq k_i \leq 10^9),表示查询序列 xli,xli+1,,xrix_{l_i}, x_{l_i+1}, \ldots, x_{r_i}kik_i-近似序列和。

输出格式

输出 qq 行,第 ii 行包含一个整数,表示序列 xli,xli+1,,xrix_{l_i}, x_{l_i+1}, \ldots, x_{r_i}kik_i-近似序列和。

5 5
1 1 2 1 2
1 4 2
1 4 3
2 6 0
1 7 2
3 7 1

3
3
0
3
2

Bajtocy 的心爱序列为 1,0,1,1,0,1,11, 0, 1, 1, 0, 1, 1,共 55 次查询:

  1. 查询 1122-近似序列,片段 1,0,1,11, 0, 1, 1,其本身为 22-近似序列,和为 33
  2. 查询 2233-近似序列,同一片段 1,0,1,11, 0, 1, 1,亦为其 33-近似序列,和为 33
  3. 查询 3300-近似序列,片段 0,1,1,0,10, 1, 1, 0, 100-近似为常序列 0,0,0,0,00, 0, 0, 0, 0,和为 00
  4. 查询 4422-近似序列,整个序列 1,0,1,1,0,1,11, 0, 1, 1, 0, 1, 122-近似为 1,0,0,0,0,1,11, 0, 0, 0, 0, 1, 1,和为 33
  5. 查询 5511-近似序列,片段 1,1,0,1,11, 1, 0, 1, 1,可能 11-近似为 1,1,0,0,01, 1, 0, 0, 00,0,0,1,10, 0, 0, 1, 1,均和为 22

附加样例

  1. n=3,S=9,q=450n=3, S=9, q=450,查询覆盖每个区间和 kk0099
  2. n=5,S=500,q=500n=5, S=500, q=500li=1,ri=i,ki=2l_i = 1, r_i = i, k_i = 2 对于 1iq1 \leq i \leq q,块长度为 2,1,1,1,4952, 1, 1, 1, 495,答案依次为 1,2,2,3,2,3,4,5,6,7,8,1, 2, 2, 3, 2, 3, 4, 5, 6, 7, 8, \ldots
  3. n=500,q=500n=500, q=500li=i,ri=i+9,ki=3l_i = i, r_i = i+9, k_i = 3 对于 1iq1 \leq i \leq q,块长度为 3,2,3,2,3, 2, 3, 2, \ldots,答案依次为 6,5,5,6,3,6,5,5,6,3,6, 5, 5, 6, 3, 6, 5, 5, 6, 3, \ldots
  4. n=104,S=109,q=104n=10^4, S=10^9, q=10^4li=1,ri=109,ki=109l_i = 1, r_i = 10^9, k_i = 10^9 对于 1iq1 \leq i \leq q,答案为 987654321987654321
  5. n=106,q=106n=10^6, q=10^6rili10r_i - l_i \leq 10 对于 1iq1 \leq i \leq q

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务编号 附加限制 分值
11 q10,S20q \leq 10, S \leq 20 44
22 q500,S500q \leq 500, S \leq 500 77
33 q105,S500q \leq 10^5, S \leq 500 44
44 q500,n500q \leq 500, n \leq 500 99
55 q5000,n5000q \leq 5000, n \leq 5000 1414
66 q104,n104q \leq 10^4, n \leq 10^4 1515
77 q105,S105q \leq 10^5, S \leq 10^5 2020
88 q106,S105q \leq 10^6, S \leq 10^5 77
99 无附加限制 2020