CF2143A.All Lengths Subtraction
入门
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 n 的排列 p。
你需要按照顺序对每个整数 k 从 1 到 n 依次进行一次操作:
- 选择 p 的一个长度恰为 k 的子数组,将该子数组内的每个元素都减去 1。
完成全部 n 次操作后,你的目标是让数组 p 的所有元素都变为 0。
请判断是否可以达成目标。
一个长度为 n 的排列是一个包含 1 到 n 这 n 个互不相同整数的数组。例如,[2,3,1,5,4] 是一个排列,但 [1,2,2] 不是排列(数字 2 在数组中出现了两次),[1,3,4] 也不是排列(n=3,但出现了 4)。
数组 a 是数组 b 的子数组,如果 a 可以由 b 删除若干(可能为零或全部)开头的元素和若干(可能为零或全部)末尾的元素得到。
输入格式
每组测试包含多个测试用例。第一行输入一个整数 t (1≤t≤100),表示测试用例数量。
接下来每个测试用例包含两行:
第一行输入一个整数 n (1≤n≤100),表示排列的长度。
第二行输入 p1,p2,…,pn (1≤pi≤n),表示排列本身。
输出格式
对于每个测试用例,如果可以在所有操作之后使数组 p 的所有元素都变为 0,输出 "YES";否则输出 "NO"。
答案可以用任意大小写输出。例如,"yEs", "yes", "Yes" 和 "YES" 都会被识别为正确答案。
输入输出样例
输入#1
4 4 1 3 4 2 5 1 5 2 4 3 5 2 4 5 3 1 3 3 1 2
输出#1
YES NO YES NO
说明/提示
对于第一个测试用例,可以按照以下步骤操作:
- k=1:选择子数组 [3,3],数组 [1,3,4,2] 变为 [1,3,3,2]。
- k=2:选择子数组 [2,3],数组 [1,3,3,2] 变为 [1,2,2,2]。
- k=3:选择子数组 [2,4],数组 [1,2,2,2] 变为 [1,1,1,1]。
- k=4:选择子数组 [1,4],数组 [1,1,1,1] 变为 [0,0,0,0]。
因此,数组元素全部归零,答案为 YES。
对于第二个测试用例,可以证明无法将所有元素归零。
对于第三个测试用例,操作过程如下:
[2,4,5,3,1]→[2,4,4,3,1]→[2,3,3,3,1]→[2,2,2,2,1]→[1,1,1,1,1]→[0,0,0,0,0]。
加粗的数表示每一步操作中被选中的子数组。
对于第四个测试用例,也可以证明无法将所有元素归零。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?