Division Game

题目链接

题意

用唯一表示法表示出n,输入m,k,表示有k堆石子,每堆有n个,现在拿石子。规则如下:
每次只能在下一堆中拿石子
每次拿走后剩余石子数量d,拿走前n,则必须有$d|n$
拿到某一堆只剩一颗石子时游戏结束

询问在每一堆石子结束的方案数。

思路

设拿到第$i$堆,拿了$x$次结束的方案数为$f(x)$,则拿到第$i$堆,拿了$x-1$次没结束的方案数也为$f(i)$。

考虑$x$范围

记$ w= \sum e_{i} $
当$i = 1$,$x \leq w$;当$i > 1$,$x < w$。

容斥计算$f(x)$

考虑每个素因子,相当于将$e_{i}$个小球放入$x$个盒子中,不允许空。$g(x)$ 表示$x$盒子,允许空放盒子方案数。

对这个式子NTT即可。

0%