#P13841. [cf2017 final]Mancala

[cf2017 final]Mancala

题目描述

考虑以下游戏:

  • 准备排成一列的 NN 个格子和大量石子。
  • 初始时,在第 ii 个格子(1iN1 \leq i \leq N)中放入 aia_i 个石子。
  • 玩家可以重复进行以下操作:选择一个恰好有 ii 个石子的格子 ii,将其中的所有石子取出,并在第 11 到第 i1i-1 个格子中各添加 11 个石子。
  • 最终剩余石子的总数即为得分。

对于长度为 NN 的数列 aa,将该游戏进行后可能得到的最小得分记为 f(a)f(a)

现在,对于所有长度为 NN 且每个元素在 00KK 之间的数列 aa,求 f(a)f(a) 的总和。由于答案可能非常大,请对 10000000071000000007(即 109+710^9+7)取模。

输入格式

输入通过标准输入给出,格式如下:

NN KK

输出格式

输出 f(a)f(a) 的总和对 10000000071000000007 取模后的结果。

输入输出样例 #1

输入 #1

2 2

输出 #1

10

输入输出样例 #2

输入 #2

20 17

输出 #2

983853488

说明/提示

约束条件

  • 1N1001 \leq N \leq 100
  • 1KN1 \leq K \leq N

样例解释 1

N=2N=2K=2K=2 时,共有 99 种可能的数列 aa,各数列对应的 f(a)f(a) 值及操作示例如下:

  • f({0,0})f(\{0,0\})00(无法操作)
  • f({0,1})f(\{0,1\})11(无法操作)
  • f({0,2})f(\{0,2\})00(依次操作格子 22 和格子 11
  • f({1,0})f(\{1,0\})00(选择格子 11
  • f({1,1})f(\{1,1\})11(选择格子 11
  • f({1,2})f(\{1,2\})00(依次操作格子 11、格子 22、格子 11
  • f({2,0})f(\{2,0\})22(无法操作)
  • f({2,1})f(\{2,1\})33(无法操作)
  • f({2,2})f(\{2,2\})33(选择格子 22

翻译由 DeepSeek R1 完成