A21473.取石子游戏
NOI/NOI+/CTSC
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
Roland. p Sprague 和 Patrick M. Grundy 都是组合游戏的狂热爱好者,但他们素未谋面。
一天,Sprague 在写给 Grundy 的信中向他介绍了一个据称是来自东方的古老游戏一一取石子。
取石子是一个双人博弈游戏。在游戏的一开始,桌面上有几堆石子堆。接下 来,游戏双方轮流进行操作:从桌面上选取一堆石子堆,然后从这一堆里面取走任意多个石子(但不能不取)。当某个人无法操作时则失败,另一方获得胜利。由于条件所限, Sprague 建议在纸上写一排自然数来代表各个石子堆的石子数目,然后两人轮流划数与数;Grundy 欣然应允。
一个月过去了,在 Grundy 连续输了 5 盘游戏之后,他怀疑 Sprague 要诈。经过几天的研究,Grundy 在某天下午发现假设游戏双方都足够聪明,那么给定一个初始状态(一排自然数),可以有很简单的方法来判定先手必胜还是后手必胜,并且可以给出必胜策略!于是 Grundy 决定要进行反击。
翌日,Grundy 在写给 Sprague 的信中建议把游戏的规则改得更复杂一点:首先确定一个常数 K。然后,游戏双方的操作改为:每次选择一个数划掉。假设该数为 x,操作者可以任选一个正整数a,在划掉之后需要再写上 x−a,$x-2a ,\cdots,x-K \times a$ 共 K 个数,且 a 需满足 x−K×a≥0。若这样的 a 不存在,那么操作者就不能划掉这个无。某一方失败的条件依然是他无法操作。
碍于面子,Sprague 当然无法拒绝。不过他也不会坐以待毙,现在他已经得到了和写在纸上的个数。他把这些数据和这个游戏的规则都告诉了你一一一个正在研究如何使用一个尚不存在的机械(你将其命名为计算机)解决实际的数学、物理、经济学)的计算机科学家。
输入格式
输入文件,第一行是一个正整数,表示数据组数 T(Sprague 向你询问的次数)。接下来依次输入 T 组数据,每组数据占 N+2 行,格式如下:
- 第 1 行是一个空行。
- 第 2 行,两个正整数,按顺序表示 N 和 K。
- 接下来 N 行,每行一个正整数,表示写在纸上的 N 个数。
输出格式
输出文件共有 T 行。对每组数据,如果先手必胜(先进行操作的玩家拥有必胜策略),则输出 Preempt.
。若后手必胜,则输出 Leapfrog.
。若两者皆非,则输出 Je suis un imbecile.
输入输出样例
输入#1
2 1 1 1 2 30 197943 249832
输出#1
Preempt. Leapfrog.
说明/提示
10% 的数据满足:N≤5,K=1,所有数均小等于 5。
20% 的数据满足:N≤100,K=1,所有数均小等于 109。
10% 的数据满足:N≤100,K=2,所有数均小等于 109。
20% 的数据满足:N≤100,K=2,所有数均小等于 1018。
20% 的数据满足:N≤100,K=10,所有数均小等于 1018。
40% 的数据满足:N≤100,K=30,所有数均小等于 1080。
100% 的数据满足:T≤10