ZOJ2290_Game】的更多相关文章

题目意思是这样的,给定一个数N,第一个可以减去任意一个数(不能为N本身),然后接下来轮流减去一个数字,下一个人减去的数字必须大于0,且不大于2倍上一次被减去的数字. 把N减为0的人获胜. 看完题目后不会做,果断就上午找题解了. 原来如此啊.... 首先我们可以打个表(在30的范围以内),就可以发现必败态是N为斐波那契数. 也就是说如果给定的数字不是一个斐波那契额数,那么就是必胜的. 接下来的问题是如何找到一个第一次减小的最小的数字呢? 可以递归找,每次都找最近的,知道恰好等于一个斐波那契数为止.…