A16797 | Battle of Arrays
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
Alice 和 Bob 正在进行一个回合制游戏。最开始,Alice 拥有一个长度为 $n$ 的正整数数组 $a$,Bob 拥有一个长度为 $m$ 的正整数数组 $b$。两位玩家轮流操作,Alice 先手。
在每位玩家的回合中,必须从自己的数组中选择一个元素 $x$,以及从对方数组中选择一个最大元素 $y$,然后进行如下操作:
- 如果 $y \leq x$:则 $y$ 被销毁(即从对方数组中移除)。
- 如果 $y > x$:则 $y$ 被减少 $x$(即 $y$ 变为 $y - x$)。
若某位玩家在自己的回合操作后,对方的数组变为空,则该玩家获胜。
假设双方都采取最优策略,判断谁会赢得游戏。
在每位玩家的回合中,必须从自己的数组中选择一个元素 $x$,以及从对方数组中选择一个最大元素 $y$,然后进行如下操作:
- 如果 $y \leq x$:则 $y$ 被销毁(即从对方数组中移除)。
- 如果 $y > x$:则 $y$ 被减少 $x$(即 $y$ 变为 $y - x$)。
若某位玩家在自己的回合操作后,对方的数组变为空,则该玩家获胜。
假设双方都采取最优策略,判断谁会赢得游戏。
输入格式
每个输入包含多组测试用例。第一行为测试用例数 $t$($1 \leq t \leq 10^5$)。
每组测试用例的第一行为两个整数 $n$ 和 $m$($1 \leq n,m \leq 10^5$),分别表示 Alice 和 Bob 数组的长度。
第二行为 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq 10^9$),表示 Alice 的数组。
第三行为 $m$ 个整数 $b_1, b_2, \ldots, b_m$($1 \leq b_i \leq 10^9$),表示 Bob 的数组。
保证所有测试用例中 $n$ 的总和不超过 $10^5$,$m$ 的总和也不超过 $10^5$。
每组测试用例的第一行为两个整数 $n$ 和 $m$($1 \leq n,m \leq 10^5$),分别表示 Alice 和 Bob 数组的长度。
第二行为 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq 10^9$),表示 Alice 的数组。
第三行为 $m$ 个整数 $b_1, b_2, \ldots, b_m$($1 \leq b_i \leq 10^9$),表示 Bob 的数组。
保证所有测试用例中 $n$ 的总和不超过 $10^5$,$m$ 的总和也不超过 $10^5$。
输出格式
对于每个测试用例,如果按照最优策略,输出游戏的获胜者名称:“Alice” 或 “Bob”。
输入输出样例
输入 #1
2 1 1 70 90 2 3 30 30 20 20 40
输出 #1
Alice Bob
在第一个示例中,Alice 先行动,将 Bob 的元素减少 $70$,变为 $20$。然后 Bob 行动,将 Alice 的元素减少 $20$,变为 $50$。最后,Alice 行动,销毁 Bob 的元素,并获得胜利。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?