欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF2143A.All Lengths Subtraction
All Lengths Subtraction
题目描述
给定一个长度为 的排列 。
你需要按照顺序对每个整数 从 到 依次进行一次操作:
- 选择 的一个长度恰为 的子数组,将该子数组内的每个元素都减去 。
完成全部 次操作后,你的目标是让数组 的所有元素都变为 。
请判断是否可以达成目标。
一个长度为 的排列是一个包含 到 这 个互不相同整数的数组。例如, 是一个排列,但 不是排列(数字 在数组中出现了两次), 也不是排列(,但出现了 )。
数组 是数组 的子数组,如果 可以由 删除若干(可能为零或全部)开头的元素和若干(可能为零或全部)末尾的元素得到。
输入格式
每组测试包含多个测试用例。第一行输入一个整数 (),表示测试用例数量。
接下来每个测试用例包含两行:
第一行输入一个整数 (),表示排列的长度。
第二行输入 (),表示排列本身。
输出格式
对于每个测试用例,如果可以在所有操作之后使数组 的所有元素都变为 ,输出 "YES";否则输出 "NO"。
答案可以用任意大小写输出。例如,"yEs", "yes", "Yes" 和 "YES" 都会被识别为正确答案。
说明/提示
对于第一个测试用例,可以按照以下步骤操作:
- :选择子数组 ,数组 变为 。
- :选择子数组 ,数组 变为 。
- :选择子数组 ,数组 变为 。
- :选择子数组 ,数组 变为 。
因此,数组元素全部归零,答案为 YES。
对于第二个测试用例,可以证明无法将所有元素归零。
对于第三个测试用例,操作过程如下:
$[2, 4, \boldsymbol{5}, 3, 1] \rightarrow [2, \boldsymbol{4, 4}, 3, 1] \rightarrow [2, \boldsymbol{3, 3, 3}, 1] \rightarrow [\boldsymbol{2, 2, 2, 2}, 1] \rightarrow [\boldsymbol{1, 1, 1, 1, 1}] \rightarrow [0, 0, 0, 0, 0]$。
加粗的数表示每一步操作中被选中的子数组。
对于第四个测试用例,也可以证明无法将所有元素归零。
由 ChatGPT 5 翻译
样例
4
4
1 3 4 2
5
1 5 2 4 3
5
2 4 5 3 1
3
3 1 2
YES
NO
YES
NO
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |