LateX好像炸了,修一下:
【问题描述】
小 A 拿来了一堆 n 个石子,邀请小 B 一起玩取石子游戏,规则是每人每次可以取不超 过 3 个石子,谁先取完谁获胜。
小 B 看了一眼石子的个数,在飞快的心算过后,明白了小 A 存心要坑他,于是小 B 提 出了一个新的游戏规则:
每个人每步可以将一堆石子分成 k 堆(k ≥ 2),由于小 B 非常喜欢等差数列,尤其喜欢 公差为 1 的等差数列,故要求这 k 堆石子排成一个公差为 1 的等差数列。换句话说,如果分 出来的每堆石子有 a1, a2, ... , an个(不妨 a1≤a2≤...≤an),那么需要满足:
a2 − a1 = a3 − a2 = ... = an − an−1=1
无法操作的玩家则失败。
小 B 为了显示出自己的友善,让小 A 先取石子。小 A 觉得小 B 也别有用心,但是他自 己并无法一眼看出这个状态是否有必胜方案,于是他找了你,想知道他是否有必胜策略。
小 A 发现,得知是否有必胜策略还不够,他还需要知道先手第一步该如何操作。由于把 石头搬来搬去很累,所以小 A 想知道,若有必胜策略,先手第一步最少分成几堆可以必胜?
【输入格式】
仅一行,一个数 n,表示初始的一堆石子总数。
【输出格式】
仅一行,一个数,如果小 A 必败,则输出 -1;否则输出所有的小 A 的必胜策略中,第 一步最少需要分成几堆。
源码:
【问题描述】
小 A 拿来了一堆 n 个石子,邀请小 B 一起玩取石子游戏,规则是每人每次可以取不超 过 $3$ 个石子,谁先取完谁获胜。
小 B 看了一眼石子的个数,在飞快的心算过后,明白了小 A 存心要坑他,于是小 B 提 出了一个新的游戏规则:
每个人每步可以将一堆石子分成 $k$ 堆($k$ ≥ 2),由于小 B 非常喜欢等差数列,尤其喜欢 公差为 1 的等差数列,故要求这 k 堆石子排成一个公差为 1 的等差数列。换句话说,如果分 出来的每堆石子有 $a_1$, $a_2$, $...$ , $a_n$个(不妨 $a_1 \le a_2 \le ... \le a_n$),那么需要满足:\
$a_{2}$ $−$ $a_{1}$ $=$ $a_{3}$ $−$ $a_{2}$ $=$ $...$ $=$ $a_{n}$ $−$ $a_{n-1}=1$
无法操作的玩家则失败。
小 B 为了显示出自己的友善,让小 A 先取石子。小 A 觉得小 B 也别有用心,但是他自 己并无法一眼看出这个状态是否有必胜方案,于是他找了你,想知道他是否有必胜策略。
小 A 发现,得知是否有必胜策略还不够,他还需要知道先手第一步该如何操作。由于把 石头搬来搬去很累,所以小 A 想知道,若有必胜策略,先手第一步最少分成几堆可以必胜?
【输入格式】
仅一行,一个数 $n$,表示初始的一堆石子总数。
【输出格式】
仅一行,一个数,如果小 A 必败,则输出 `-1`;否则输出所有的小 A 的必胜策略中,第 一步最少需要分成几堆。
@小粉兔