CF1547E Air Conditioners

题目描述

在一条长度为 $n$ 的狭长地带上,有 $k$ 台空调:第 $i$ 台空调放置在第 $a_i$ 个格子($1 \le a_i \le n$)。同一个格子不能放置两台或以上的空调(即所有 $a_i$ 互不相同)。 每台空调有一个参数:温度。第 $i$ 台空调的温度为 $t_i$。 如下图所示,是长度为 $n=6$ 的狭长地带,其中 $k=2$,$a=[2,5]$,$t=[14,16]$。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1547E/cf6634601d8b404820c7eae42e10e4cc87878a8e.png) 对于每个格子 $i$($1 \le i \le n$),请计算该格子的温度,其计算公式为 $$ \min_{1 \le j \le k}(t_j + |a_j - i|), $$ 其中 $|a_j - i|$ 表示 $a_j$ 与 $i$ 的绝对值差。 换句话说,第 $i$ 个格子的温度等于所有空调温度加上它们到第 $i$ 个格子的距离后的最小值。 让我们来看一个例子。假设 $n=6, k=2$,第一台空调放在第 $a_1=2$ 个格子,温度为 $t_1=14$,第二台空调放在第 $a_2=5$ 个格子,温度为 $t_2=16$。此时各格子的温度如下: 1. 第 $1$ 个格子的温度为:$\min(14 + |2 - 1|, 16 + |5 - 1|)=\min(14 + 1, 16 + 4)=\min(15, 20)=15$; 2. 第 $2$ 个格子的温度为:$\min(14 + |2 - 2|, 16 + |5 - 2|)=\min(14 + 0, 16 + 3)=\min(14, 19)=14$; 3. 第 $3$ 个格子的温度为:$\min(14 + |2 - 3|, 16 + |5 - 3|)=\min(14 + 1, 16 + 2)=\min(15, 18)=15$; 4. 第 $4$ 个格子的温度为:$\min(14 + |2 - 4|, 16 + |5 - 4|)=\min(14 + 2, 16 + 1)=\min(16, 17)=16$; 5. 第 $5$ 个格子的温度为:$\min(14 + |2 - 5|, 16 + |5 - 5|)=\min(14 + 3, 16 + 0)=\min(17, 16)=16$; 6. 第 $6$ 个格子的温度为:$\min(14 + |2 - 6|, 16 + |5 - 6|)=\min(14 + 4, 16 + 1)=\min(18, 17)=17$。 请你对于每个格子 $1$ 到 $n$,求出其温度。

输入格式

第一行包含一个整数 $q$($1 \le q \le 10^4$),表示测试用例的数量。接下来是 $q$ 组测试用例。每组测试用例前有一个空行。 每组测试用例包含三行。第一行包含两个整数 $n$($1 \le n \le 3 \times 10^5$)和 $k$($1 \le k \le n$),分别表示狭长地带的长度和空调的数量。 第二行包含 $k$ 个整数 $a_1, a_2, \ldots, a_k$($1 \le a_i \le n$),表示空调在狭长地带上的位置。 第三行包含 $k$ 个整数 $t_1, t_2, \ldots, t_k$($1 \le t_i \le 10^9$),表示空调的温度。 保证所有测试用例中 $n$ 的总和不超过 $3 \times 10^5$。

输出格式

对于每组测试用例,输出 $n$ 个用空格分隔的整数,表示每个格子的温度。

说明/提示

由 ChatGPT 4.1 翻译