#AT0111. Stones (博弈DP)

Stones (博弈DP)

问题陈述

NN 个正整数组成的集合 A={a1,a2,,aN}A = \{ a _ 1, a _ 2, \ldots, a _ N \}。太郎君和次郎君将用以下游戏进行对决。

首先,准备一个有 KK 个石子的堆。两人依次进行以下操作。

太郎君先手:

  • 从集合 AA 中选择一个元素 xx,从石堆中恰好移除 xx 个石子。

不能进行操作的人输掉游戏。当两人都按照最优策略行动时,判断谁会获胜。

限制因素

  • 输入值均为整数。
  • 1N1001 \leq N \leq 100
  • 1K1051 \leq K \leq 10^5
  • 1a1<a2<<aNK1 \leq a_1 \lt a_2 \lt \cdots \lt a_N \leq K

输入

输入内容由标准输入法提供,格式如下:

  • NN KK
  • a1a_1 a2a_2 \ldots aNa_N

输出

如果太郎将获胜,则打印 First;如果二郎将获胜,则打印 Second

2 4
2 3
First

如果太郎取出三颗棋子,二郎就无法下棋。因此,太郎获胜。

2 5
2 3
Second

无论太郎如何操作,二郎都会获胜,如下所示:

  • 如果太郎移走两颗棋子,二郎可以移走三颗棋子,使太郎无法下棋。
  • 如果太郎取出三颗棋子,二郎可以取出两颗棋子使太郎无法下棋。
2 7
2 3
First

太郎应该取出两颗棋子。然后,无论二郎如何操作,太郎都会获胜,如下所示:

  • 如果二郎取出两颗棋子,太郎可以取出三颗棋子,使二郎无法下棋。
  • 如果二郎移走三颗棋子,太郎可以移走两颗棋子,使二郎无法走棋。
3 20
1 2 3
Second
3 21
1 2 3
First
1 100000
1
Second

来源

https://atcoder.jp/contests/dp/tasks/dp_k