开始时,他在一个无限一维网格上的 0 号方格中。当他位于 x 号方格时,他可以移动到 x-1 号方格或 x+1 号方格。在走了 N 步之后,有多少种方法可以到达 X 格?
如果是 N < |X|,那么经过 N 步不可能到达 X 格,因此答案是 0。
另外,移动奇数次后,得到的位置 x 总是奇数,而移动偶数次后,x 总是偶数,所以如果是 N \bmod 2 \neq X \bmod 2,答案也是 0。
我们再考虑其他情况。不妨设 X \geq 0(X < 0 是同样的),那么"在恰好下了 N 步之后,他在 X 格中",当且仅当"在 N 步中,他在 x 坐标的正方向下了 (N+|X|)/2 步,在 x 坐标的负方向下了 (N-|X|)/2 步"。因此,所需的移动次数可以用二项式系数表示为 \binom{N}{(N+|X|)/2}。
因此,恰好经过 N 步到达 X 格的 f_1(N, X) 步数为:
f_1(N, X) = \begin{cases} \displaystyle\binom{N}{(N+|X|)/2} &(\text{if }N \geq |X|\text{ and }N \bmod 2 = X \bmod 2)\\ 0&(\text{otherwise}) \end{cases}
通过预处理,可以在 \mathrm{O}(1) 的时间将给定的 N 和 X 计算出 f_1(N, X)。