P17634 [ICPC 2019 Yinchuan R] Image Processing
题目描述
Brabo 有 $n$ 张图片和一个图像处理 APP。对于任意 $1\leq i\leq n$,第 $i$ 张图片有一个对比度值 $v_i$。为了改善图片质量,该 APP 一次性接收一批图片(至少包含 $k$ 张图片),且这些图片之间的对比度应尽可能接近。
Brabo 已经知道所有这些图片的对比度值 $v_i$,现在他需要确定一个划分,将图片分成若干组,使得每组至少有 $k$ 张图片,且每张图片应属于某一组。此外,同一组内图片对比度值的最大差值应尽可能小。注意,Brabo 不能重新排列这些图片的顺序。也就是说,每组必须包含若干张下标连续的图片。
记 $c_i$ 为将前 $i$ 张图片划分成组时,所得到的最小的组内最大对比度差值。你的任务是计算这些值:$c_1, c_2, \cdots, c_n$。注意,当无法对前 $i$ 张图片进行划分时,$c_i$ 视为 $0$。
输入格式
第一行包含两个整数 $n$ $(1 \le n \le 1000000)$ 和 $k$ $(1 \le k \le n)$ —— 图片的数量,以及每组图片至少应包含的图片数。
接下来一行包含 $n$ 个整数 $x_1, x_2, \cdots, x_n$ $(0 \le x_i \le 2\times 10^9)$ —— 这些图片加密后的对比度值。实际的 $v_i$ 等于 $x_i \oplus c_{i-1}$,其中 $\oplus$ 表示按位异或运算。注意 $c_0=0$。保证解密后满足 $1\leq v_i\leq 10^9$。
输出格式
输出 $n$ 行,其中第 $i$ 行 $(1\le i \le n)$ 包含一个整数,即最小的对比度差值 $c_i$。
说明/提示
在样例测试中,$v=[50,110,130,40,120]$。
翻译由 DeepSeek V4 Pro 完成