CF1408B Arrays Sum

题目描述

给定一个非递减的非负整数数组 $a_1, a_2, \ldots, a_n$,以及一个正整数 $k$。 你需要找到 $m$ 个非递减的非负整数数组 $b_1, b_2, \ldots, b_m$,使得: - 对于所有 $1 \leq i \leq m$,$b_i$ 的长度等于 $n$。 - 对于所有 $1 \leq j \leq n$,都有 $a_j = b_{1, j} + b_{2, j} + \ldots + b_{m, j}$。换句话说,数组 $a$ 是所有 $b_i$ 的逐位和。 - 对于所有 $1 \leq i \leq m$,数组 $b_i$ 中不同元素的个数不超过 $k$。 请你求出可能的最小 $m$,如果不存在这样的 $m$,输出 $-1$。

输入格式

第一行包含一个整数 $t$($1 \leq t \leq 100$),表示测试用例的数量。 每个测试用例的第一行包含两个整数 $n$、$k$($1 \leq n \leq 100$,$1 \leq k \leq n$)。 每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \leq a_1 \leq a_2 \leq \ldots \leq a_n \leq 100$,$a_n > 0$)。

输出格式

对于每个测试用例,输出一个整数,表示可能的最小 $m$。如果不存在这样的 $m$,输出 $-1$。

说明/提示

在第一个测试用例中,不存在可行的 $m$,因为所有 $b_i$ 的所有元素都应为 $0$,但这样无法得到 $a_4 = 1$。 在第二个测试用例中,可以取 $b_1 = [3, 3, 3]$。此时 $m$ 的最小可能值为 $1$。 在第三个测试用例中,可以取 $b_1 = [0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2]$ 和 $b_2 = [0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2]$。可以验证,对于所有 $i$,都有 $a_i = b_{1, i} + b_{2, i}$,且 $b_1$ 和 $b_2$ 中不同元素的个数都为 $3$(不超过 $3$)。可以证明 $2$ 是最小可能的 $m$。 由 ChatGPT 4.1 翻译