CF2114G.Build an Array
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
昨天,Dima 发现了一个空数组,并决定向数组中添加一些整数,他可以进行无限次下述操作:
- 向数组的左端或右端添加任意一个整数。
- 添加之后,只要数组中有一对相邻的数相同,它们就会被替换为它们的和。
可以证明数组中不会同时出现两对相邻的数相同。
例如,如果当前数组是 [3,6,4],我们添加 3 至数组的左端,则数组将首先变为 [3,3,6,4],随后左端的两个 3 将会被替换为 6,即数组变为 [6,6,4],然后进一步变为 [12,4]。
在进行了恰好 k 次操作后,他认为自己得到了一个长度为 n 的数组 a。然而,他不记得自己都进行了哪些操作。请判定数组 a 是否能由一组 k 次操作序列得到。
输入格式
输入数据包含多个测试用例,第一行包含一个整数 t(1≤t≤104)——测试用例的数量。
每个测试用例的第一行包含两个整数 n 和 k(1≤n≤105,n≤k≤106)——最终数组的长度和操作的次数。
每个测试用例的第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109,ai−1=ai)——最终数组的元素。
输入数据保证所有测试用例中的 n 之和不超过 105。
输出格式
对于每个测试用例,如果不能通过 k 次操作得到相应的数组,输出一行 NO,否则输出一行 YES。
你可以以任意大小写输出 NO 或者 YES。例如,yEs,yes,Yes,YES 都会被视为肯定回答。
输入输出样例
输入#1
8 3 3 2 1 4 3 7 2 1 4 2 15 2 16 3 10 256 32 1 3 289 768 96 1 3 290 768 96 1 5 7 5 1 6 3 10 4 6 6 8 5 10
输出#1
YES NO YES YES YES NO YES YES
说明/提示
null
输入解题思路,AI测评打分。不知道怎么写?