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

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

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

题目描述

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

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

输入格式

输入的第一行包含两个整数 nn 和 qq(1≤n,q≤100 0001 \le n, q \le 100\,000)—— 数组的长度和查询的数量。

第二行包含 nn 个整数 a1,…,ana_1, \dots, a_n(1≤ai≤1091 \le a_i \le 10^9)—— 数组中数字的值。

接下来的 qq 行包含查询。第 ii 行给出三个整数 lil_i、rir_i 和 kik_i(1≤l≤r≤n1 \le l \le r \le n,1≤k≤r−l+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,q≤300n, q \le 300
2 12 n,q≤4000n, q \le 4000 1
3 8 n,q≤10 000n, q \le 10\,000 1–2
4 11 n≤4 000n \le 4\,000
5 10 所有查询中的 kik_i 相等
6 14 ai≤2a_i \le 2
7 ai≤20a_i \le 20 6
8 15 li=1,ri=nl_i = 1, r_i = n
9 17 无额外限制 1–8