2931. 集合-Nim游戏
时间限制:1000 MS 内存限制:128 MB
题目描述
# 集合-Nim游戏 ## 题目描述 给定 $n$ 堆石子,第 $i$ 堆有 $h_i$ 颗石子,以及一个由 $k$ 个互不相同的正整数构成的集合 $S$。 两位玩家轮流操作。每次操作,玩家选择一堆石子,并从中取走 $s$ 颗石子,其中 $s \in S$,且 $s$ 不能超过该堆剩余的石子数量。 无法进行合法操作的玩家失败。 如果两位玩家都采用最优策略,请判断先手是否必胜。 ## 输入格式 从文件 `setnim.in` 中读入数据。 第一行包含一个整数 $k$,表示集合 $S$ 中元素的个数。 第二行包含 $k$ 个互不相同的正整数 $s_1,s_2,\ldots,s_k$,表示集合 $S$ 中的元素。 第三行包含一个整数 $n$,表示石子的堆数。 第四行包含 $n$ 个整数 $h_1,h_2,\ldots,h_n$,其中 $h_i$ 表示第 $i$ 堆石子的数量。 ## 输出格式 将结果输出到文件 `setnim.out` 中。 输出一行。如果先手必胜,输出 `Yes`;否则,输出 `No`。 ## 数据范围 对于所有测试数据: - $1 \le n,k \le 100$。 - $1 \le s_i,h_i \le 10000$。 - 集合 $S$ 中的元素互不相同。 ## 样例输入 ``` 2 2 5 3 2 4 7 ``` ## 样例输出 ``` Yes ``` ## 时间与内存限制 - 时间限制:$1000$ 毫秒。 - 内存限制:$128$ MB。