1 条题解
-
0
自动搬运
来自洛谷,原作者为

Push_Y
会赢的搬运于
2025-08-24 22:21:16,当前版本为作者最后更新于2021-09-01 14:15:59,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
建议直接观看我博客中完整的Fibonacci Nim
显然先手可以第一次直接取完获胜,但大多数情况下这么做并不是最少的。下面我们考虑第一次不取完的情况。
齐肯多夫(Zeckendorf)定理
Wikipedia 中对齐肯多夫定理的描述:
任何正整数都可以表示成若干个不连续的斐波那契数之和。
这种和式称为齐肯多夫表述法。
构造这种和式可以通过每次贪心选出最大的不超过它的斐波那契数。
证明:
-
若正整数 为斐波那契数,得证。
-
否则
-
先取 ,其中 满足 。
-
,同上一步取出一个 满足 。
-
只要证 。考虑反证法:
- 假设 ,则第一步取出的应当是 而不是 。原因是 。
-
解题
引理 1
如果正整数 为斐波那契数,则先手必败。
证明:
设 ,我们把 看成 和 两堆。
-
若第一步取的个数超过 ,则后手可以直接取完剩余石子。
-
否则,该问题变成了一个 的规模更小的同样的问题。
考虑 的情况(即规模最小的情况),先手只能取 ,于是后手取 获胜。
引理 2
如果正整数 不为斐波那契数,则将其用齐肯多夫表示法表示后,最小的那一堆个数即为答案。
证明:
先手取完最小的那一堆(即 )后,根据齐肯多夫定理,,于是后手无法一次性取完次小的那一堆。再根据引理 1,次小的一堆的最后一块石子一定还是由先手取到,于是先手一定能取到最大的那一堆的最后一块,即整堆石子的最后一块。
-
- 1
信息
- ID
- 5514
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者