CF2234G Stripe, Token and Two Players
题目描述
有一条由 $n+1$ 个格子组成的带,编号从 $1$ 到 $n+1$。一开始,第 $1$ 个格子上有一个权值为 $1$ 的棋子,第 $1 \sim n$ 个格子上分别写有数 $a_1, a_2, \ldots, a_n$。
有两名玩家进行游戏,每次轮到玩家操作时,按以下顺序进行:
1. 设当前棋子在第 $i$ 个格子。
2. 玩家可以将棋子的权值增加任意整数,范围是 $0$ 到 $a_i$ 之间(包含 $0$ 和 $a_i$)。
3. 然后,玩家可以将棋子向前移动任意正整数步,但不能超过当前棋子的权值,且移动后不能超出这条带的末端。
使棋子恰好落在第 $n+1$ 个格子的那一步的玩家获胜。
两人都采取最优策略时,谁能获胜?
输入格式
每个测试点包含多组测试用例。第一行为测试用例组数 $t$($1 \le t \le 10^4$)。
每组测试用例第一行一个整数 $n$($1 \le n \le 10^5$),表示带上写有数字的格子数量。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \le a_i \le 10^9$),表示每个格子上写的数字。
保证所有测试用例中 $n$ 之和不超过 $10^5$。
输出格式
对于每组测试用例,输出一个整数 $1$ 或 $2$,表示在双方都采取最优策略的情况下,第几位玩家获胜(玩家 $1$ 先手)。
说明/提示
在第一个测试用例中,棋子的权值始终为 $1$,因此每次只能前进一步。总共需要移动 $3$ 步,最后一步由玩家 $1$ 完成,所以他一定会获胜。
在第二个测试用例中,玩家 $2$ 有必胜策略:在他第一次操作时,将棋子的权值升到最大,然后直接跳到第 $4$ 个格子获胜。这总是可行的,因为无论轮到他行动时棋子在第 $2$ 还是第 $3$ 个格子,其权值都可以升至少为 $2$。
由 ChatGPT 5 翻译