A5116 | 午枫的分割数组
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
小午和小枫有一个长度为 $n$ 的数组 $a$ ,他们想把数组分割成前后两部分,具体分割的规则如下:
* 小午需要将数组切分成前后两部分,第一部分给小午,第二部分给小枫(长度可以任意,但不能为空)。
* 小午可以在他分到的数组中选择不超过 $k_1$ 个数,小枫可以在他分到的数组中选择不超过 $k_2$ 个数。
* 如果小午选的数中,数量最多的数的大小大于小枫选的数中数量最多的数的大小,则小午获胜;否则小枫获胜。
假设小午和小枫都会采取最优策略,使得各自所选的数中数量最多的数的大小最大。请问小午是否一定可以胜利。
* 小午需要将数组切分成前后两部分,第一部分给小午,第二部分给小枫(长度可以任意,但不能为空)。
* 小午可以在他分到的数组中选择不超过 $k_1$ 个数,小枫可以在他分到的数组中选择不超过 $k_2$ 个数。
* 如果小午选的数中,数量最多的数的大小大于小枫选的数中数量最多的数的大小,则小午获胜;否则小枫获胜。
假设小午和小枫都会采取最优策略,使得各自所选的数中数量最多的数的大小最大。请问小午是否一定可以胜利。
输入格式
第一行输入一个正整数 $n,k_1,k_2$ $(2\leq n\leq 10^6,1\leq k_1,k_2\leq10^6)$ ,表示数组的初始长度。
第二行输入 $n$ 个正整数 $a_i$ $(1\leq a_i\leq 10^5)$ ,表示数组中第 $i$ 个元素大小。
第二行输入 $n$ 个正整数 $a_i$ $(1\leq a_i\leq 10^5)$ ,表示数组中第 $i$ 个元素大小。
输出格式
如果小午一定可以获胜,输出
YES ,否则输出 NO 。输入输出样例
输入 #1
5 5 5 2 1 4 4 3
输出 #1
YES
对于这一组测试数据,小午可以分割出 $\{2,1,4,4\}$ 作为小午的数组,随后从中选择最后两个 $4$,得到数量最多的数为 $4$ ;小枫将从切分出的后一部分数组 $\{3\}$ 中选择 $3$ ,得到个数最多的数字为 $3$ 。
可以证明,这样的选择是最优的策略。所以小午获胜。
可以证明,这样的选择是最优的策略。所以小午获胜。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?