CF1408B.Arrays Sum
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a non-decreasing array of non-negative integers a1,a2,…,an. Also you are given a positive integer k.
You want to find m non-decreasing arrays of non-negative integers b1,b2,…,bm, such that:
- The size of bi is equal to n for all 1≤i≤m.
- For all 1≤j≤n, aj=b1,j+b2,j+…+bm,j. In the other word, array a is the sum of arrays bi.
- The number of different elements in the array bi is at most k for all 1≤i≤m.
Find the minimum possible value of m, or report that there is no possible m.
给你一个非递减的非负整数数组 a1,a2,…,an,以及一个正整数 k。
你需要找出 m 个非递减的非负整数数组 b1,b2,…,bm,满足以下条件:
- 对所有 1≤i≤m,数组 bi 的长度等于 n;
- 对所有 1≤j≤n,有 aj=b1,j+b2,j+…+bm,j。换言之,数组 a 是各数组 bi 的逐元素和;
- 对所有 1≤i≤m,数组 bi 中不同元素的个数至多为 k。
求满足条件的最小可能的 m 值;若不存在这样的 m,则报告无解。
输入格式
The first line contains one integer t (1≤t≤100): the number of test cases.
The first line of each test case contains two integers n, k (1≤n≤100, 1≤k≤n).
The second line contains n integers a1,a2,…,an (0≤a1≤a2≤…≤an≤100, an>0).
第一行包含一个整数 t(1≤t≤100):测试用例的数量。
每个测试用例的第一行包含两个整数 n、k(1≤n≤100,1≤k≤n)。
第二行包含 n 个整数 a1,a2,…,an(0≤a1≤a2≤…≤an≤100,且 an>0)。
输出格式
For each test case print a single integer: the minimum possible value of m. If there is no such m, print −1.
对于每个测试用例,输出一个整数:满足条件的最小 m 值。若不存在这样的 m,则输出 −1。
输入输出样例
输入#1
6 4 1 0 0 0 1 3 1 3 3 3 11 3 0 1 2 2 3 3 3 4 4 4 4 5 3 1 2 3 4 5 9 4 2 2 3 5 7 11 13 13 17 10 7 0 1 1 2 3 3 4 5 5 6
输出#1
-1 1 2 2 2 1
说明/提示
In the first test case, there is no possible m, because all elements of all arrays should be equal to 0. But in this case, it is impossible to get a4=1 as the sum of zeros.
In the second test case, we can take b1=[3,3,3]. 1 is the smallest possible value of m.
In the third test case, we can take b1=[0,1,1,1,2,2,2,2,2,2,2] and b2=[0,0,1,1,1,1,1,2,2,2,2]. It's easy to see, that ai=b1,i+b2,i for all i and the number of different elements in b1 and in b2 is equal to 3 (so it is at most 3). It can be proven that 2 is the smallest possible value of m.
在第一个测试用例中,不存在满足条件的 m,因为所有数组中的所有元素都必须等于 0。但在这种情况下,不可能通过若干个 0 的和得到 a4=1。
在第二个测试用例中,我们可以取 b1=[3,3,3]。此时 m 的最小可能值为 1。
在第三个测试用例中,我们可以取 b1=[0,1,1,1,2,2,2,2,2,2,2] 和 b2=[0,0,1,1,1,1,1,2,2,2,2]。容易验证,对所有 i 均有 ai=b1,i+b2,i,且 b1 与 b2 中不同元素的个数均为 3(即均不超过 3)。可以证明,m 的最小可能值为 2。
输入解题思路,AI测评打分。不知道怎么写?