CF2087H.Nim with Special Numbers
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
让我们回顾一下“Nim”游戏的规则。该游戏由两名玩家轮流进行。他们面前有若干堆石子(每堆石子的数量可以相同也可以不同,堆的大小即为石子的数量)。每位玩家在自己的回合,必须选择任意一堆非空的石子,并从中取走任意数量的石子(至少取一个)。无法进行操作的玩家判负。
在本题中,游戏规则进行了修改。存在一个特殊的数字集合 S,它禁止某些操作。对于集合中的每个数字 si,如果当前某堆石子的数量严格大于 si,则不能通过一次操作使该堆的数量严格小于 si。换句话说,若当前某堆石子的数量为 x,玩家尝试将其变为 y,且存在某个 si∈S 满足 x>si>y,那么这样的操作是不允许的。
你的任务如下。初始时集合 S 为空。你需要处理三种类型的操作:
- 向集合中添加某个数字 si;
- 从集合中移除某个数字 si;
- 判断在当前规则下,若有若干堆石子,堆的大小分别为 a1,a2,…,ak,由两名玩家轮流操作,假设双方都采取最优策略,谁会获胜。
输入格式
第一行包含一个整数 q(1≤q≤3×105),表示操作的数量。
接下来的每一行描述一个操作,格式如下:
- 1 si(1≤si≤3×105):如果数字 si 已在集合 S 中,则将其移除;否则将其加入集合 S;
- 2 ki ai,1 ai,2 … ai,ki(1≤ki≤3,1≤ai,j≤3×105):判断在当前规则下,若有 ki 堆石子,堆的大小分别为 ai,1,ai,2,…,ai,ki,谁会获胜。
输出格式
对于每个类型为 2 的操作,若先手必胜则输出 First,否则输出 Second。
输入输出样例
输入#1
11 2 2 1 4 1 2 2 2 1 4 2 3 3 1 4 1 3 2 3 3 1 4 2 2 1 4 1 4 2 2 1 5 1 2 2 2 1 5
输出#1
First Second Second Second Second First Second
说明/提示
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?