欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF2191B.MEX Reordering
MEX Reordering
题目描述
给定一个由 个元素组成的整数数组 ,定义 $f(l, r) = \operatorname{MEX}([a_l, a_{l + 1}, \dots, a_r])$ 。
请判断是否可以对数组 进行重排,使得对于每一个 (),都满足 。换句话说,对于每一个分割点 ,数组前缀的MEX值必须与后缀的MEX值不同。
一个整数集合 的最小未出现值(MEX)定义为:不在该集合中出现的最小非负整数。
输入格式
输入包含多组测试用例。第一行输入测试用例数 (),后续为各测试用例的描述。
每组测试用例的第一行输入一个整数 (),表示数组的长度。 第二行输入 个整数 ()。
输出格式
对于每组测试用例,若存在满足条件的重排方式,输出YES,否则输出 NO。
输出的大小写不做要求(例如 yEs、yes、Yes、YES 均视为正确答案)。
说明/提示
第一个样例中,数组的原始顺序就已经满足条件。此时唯一的分割点为 ,计算得 ,。由于 ,条件成立。
第二个样例中,可以证明不存在满足条件的重排方式。例如考虑重排后的数组为 ,取分割点 ,则,,二者相等,因此该重排方式无效。
第三个样例中,可将数组重排为 。以分割点 为例,,,满足条件。可以验证,该重排方式对所有分割点均满足条件。
样例
3
2
1 0
3
0 3 0
6
1 0 5 0 6 1
YES
NO
YES
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |