本文共 993 字,大约阅读时间需要 3 分钟。
题意
一共有n个箱子,每个箱子容量为S,当前的石子为C。每次想一个箱子放石子,放的数量不能超过当前石子数的平方,谁先放完谁赢。
AC
SG函数
- 当C == S 时,sg(S, C) = 0
- 当C > T 时,假设T为当前最大的必败点,则T满足 T + T * T < S, (T + 1) + (T + 1) * (T + 1) >= S sg(S, C) = mex(sg(S, C + 1), sg(S, C + 2) …… sg(S, S - 1), sg(S, S)) = S - C 证明:sg(S, S) = 0, sg(S, S - 1) = mex(sg(S, S)) = 1 ………
- 当C <= T,此时sg(S, C) = sg(T, C),递归求sg
#include #include #include #include #include
转载地址:http://qzprf.baihongyu.com/