TOAD 37 - Zeroise Me
似乎 Matrix67 大大已经翻译过了。
Problem
一个长度为 \(n\) 的 0/1 串,A/B 俩人博弈。每次操作如下:
- 如果当前串首是 1 ,则放一个 0/1 到串尾,由 A 决定
- 如果当前串首是 0 ,则放一个 0/1 到串尾,由 B 决定
- 删除串首,重复以上过程
如果有限步内这个串全是 0 ,则 A 获胜,否则 B 获胜。
问什么情况下 A 必胜。
Solution
任一情况下 A 都必胜。
A 的方案如下:我们把整个串看成是一个大的二进制数。我们称连续操作 \(n\) 次为一轮操作。如果我们保证任意一轮操作后,二进制数一定会增加,那么总有一轮过后整个串会全是 1 。这个时候全部都是 A 操作,全部设为 0 即可。
如何保证二进制数一定会增加呢?A 的策略为,在这一轮中,如果 B 已经将一个 0 变为 1 了,则保持这个 1 不变,否则把 1 变为 0 。显然,B 至少将一个 0 变为 1 ,否则 A 就赢了。只要 B 将一个 0 变为 1,则整个串的二进制数一定会增加。