#P15133. [ROIR 2026] 最后的滑动窗口问题

    ID: 17044 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 难度: 9 上传者: 标签>线段树扫描线2026单调栈ROIR(俄罗斯)

[ROIR 2026] 最后的滑动窗口问题

题目描述

考虑一个数字数组 b1,,bmb_1, \dots, b_m。该数组上长度为 kkkmk \le m)的滑动窗口是指所有长度为 kk 的子段,即 {b1,,bk},\{b_1, \dots, b_k\}, {b2,,bk+1},\{b_2, \dots, b_{k + 1}\}, ,\dots, {bmk+1,,bm}\{b_{m-k+1}, \dots, b_m\}

给定一个长度为 nn 的数字数组 a1,,ana_1, \dots, a_n。回答关于该数组的 qq 个查询,查询形式如下:对于给定的 llrrkk,找出子段 {al,,ar}\{a_l, \dots, a_r\} 上所有长度为 kk 的滑动窗口的最小值之和。

输入格式

输入的第一行包含两个整数 nnqq1n,q1000001 \le n, q \le 100\,000)—— 数组的长度和查询的数量。

第二行包含 nn 个整数 a1,,ana_1, \dots, a_n1ai1091 \le a_i \le 10^9)—— 数组中数字的值。

接下来的 qq 行包含查询。第 ii 行给出三个整数 lil_irir_ikik_i1lrn1 \le l \le r \le n1krl+11 \le k \le r - l + 1)—— 第 ii 个查询的子段左右边界以及滑动窗口的长度。

输出格式

输出 qq 行,每行包含对应查询的答案。第 ii 行输出一个数字 —— 子段 {ali,,ari}\{a_{l_i}, \dots, a_{r_i}\} 上所有长度为 kik_i 的滑动窗口的最小值之和。

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

提示

子任务 分值 额外限制 依赖子任务
1 6 n,q300n, q \le 300
2 12 n,q4000n, q \le 4000 1
3 8 n,q10000n, q \le 10\,000 1–2
4 11 n4000n \le 4\,000
5 10 所有查询中的 kik_i 相等
6 14 ai2a_i \le 2
7 ai20a_i \le 20 6
8 15 li=1,ri=nl_i = 1, r_i = n
9 17 无额外限制 1–8