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

「POI 2023/2024 R2」Ciąg binarny

题目描述

题目译自XXII Olimpiada Informatyczna — II etap Trzy Wieże

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-近似序列和。

输入格式

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

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

接下来的 qq 行,每行包含三个整数 lil_i, rir_i, kik_i (1liriS(1 \leq l_i \leq r_i \leq S, 0ki109)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:22-近似序列,片段 1,0,1,11, 0, 1, 1,其本身为 22-近似序列,和为 33
  • 查询 2:33-近似序列,同一片段 1,0,1,11, 0, 1, 1,亦为其 33-近似序列,和为 33
  • 查询 3:00-近似序列,片段 0,1,1,0,10, 1, 1, 0, 100-近似为常序列 0,0,0,0,00, 0, 0, 0, 0,和为 00
  • 查询 4:22-近似序列,整个序列 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:11-近似序列,片段 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

附加样例

  • n=3n=3, S=9S=9, q=450q=450,查询覆盖每个区间和 kk0099
  • n=5n=5, S=500S=500, q=500q=500li=1l_i = 1, ri=ir_i = i, ki=2k_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
  • n=500n=500, q=500q=500li=il_i = i, ri=i+9r_i = i+9, ki=3k_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
  • n=104n=10^4, S=109S=10^9, q=104q=10^4li=1l_i = 1, ri=109r_i = 10^9, ki=109k_i = 10^9 对于 1iq1 \leq i \leq q,答案为 987654321987654321
  • n=106n=10^6, q=106q=10^6rili10r_i - l_i \leq 10 对于 1iq1 \leq i \leq q

数据范围与提示

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

子任务编号 附加限制 分值
1 q10q \leq 10, S20S \leq 20 4
2 q500q \leq 500, S500S \leq 500 7
3 q105q \leq 10^5, S500S \leq 500 4
4 q500q \leq 500, n500n \leq 500 9
5 q5000q \leq 5000, n5000n \leq 5000 14
6 q104q \leq 10^4, n104n \leq 10^4 15
7 q105q \leq 10^5, S105S \leq 10^5 20
8 q106q \leq 10^6, S105S \leq 10^5 7
9 无附加限制 20