#P1440. 求m区间内的最小值(Range Minimum in Window)

0

求m区间内的最小值(Range Minimum in Window)

求m区间内的最小值(Range Minimum in Window)

题目描述

一个含有 nn 项的数列,求出每一项前的 mm 个数到它这个区间内的最小值。若前面的数不足 mm 项则从第 11 个数开始,若前面没有数则输出 00。

输入格式

第一行两个整数,分别表示 nn,mm。

第二行,nn 个正整数,为所给定的数列 aia_i。

输出格式

nn 行,每行一个整数,第 ii 个数为序列中 aia_i 之前 mm 个数的最小值。

样例输入 #1

6 2
7 8 1 4 3 2

样例输出 #1

0
7
7
1
1
3

数据范围

对于 100%100\% 的数据,保证 1≤m≤n≤2×1061\le m\le n\le2\times10^6,1≤ai≤3×1071\le a_i\le3\times10^7。

知识点与难度

本题涉及的知识点从属于 CSP-J,难度(CF Rating):1300。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1 样例
1 20 2~7 小规模 n≤1000 / 边界 n=m=1 / m=n全局前缀最小值
2 15 8~11 Hack: 严格递增序列卡单调队列队首 / Hack: 严格递减序列频繁弹队尾 / Hack: n=2×10^6满规模
3 30 12~20 中大规模 n≤2×10^6 单调队列线性扫描压力
4 25 21~25 随机窗口长度与随机权值回归测试

出处:原题链接