AT_diverta2019_2_e.Balanced Piles

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有 NN 个格子横向排列,从左到右依次编号为 11 到 NN。高桥君打算在这些格子上堆积木。初始时,每个格子上都没有积木。

高桥君希望将积木堆得均匀,他会重复以下操作,直到每个格子上都恰好堆有 HH 个积木为止:

  • 设当前所有格子中积木数的最大值为 MM,最小值为 mm。从所有积木数为 mm 的格子中任选一个(如果有多个可以任选),在该格子上堆若干个积木,使得该格子的积木数变为 MM 以上且不超过 M+DM+D,即堆到 MM、M+1M+1、…\dots、M+DM+D 中的某一个数。

请你帮高桥君计算,经过若干次上述操作后,使所有格子上都恰好有 HH 个积木的方法总数。由于答案可能非常大,请输出对 109+710^9+7 取模后的结果。

输入格式

输入为一行,包含三个整数:

NN HH DD

输出格式

输出使所有格子上都恰好有 HH 个积木的方法总数,对 109+710^9+7 取模。

输入输出样例

  • 输入#1

    2 2 1

    输出#1

    6
  • 输入#2

    2 30 15

    输出#2

    94182806
  • 输入#3

    31415 9265 3589

    输出#3

    312069529

说明/提示

限制条件

  • 2≤N≤1062 \leq N \leq 10^6
  • 1≤D≤H≤1061 \leq D \leq H \leq 10^6
  • 输入均为整数

样例解释 1

(格子 11 上的积木数,格子 22 上的积木数)可以按如下方式变化:

  • (0,0)→(0,1)→(1,1)→(1,2)→(2,2)(0, 0) \to (0, 1) \to (1, 1) \to (1, 2) \to (2, 2)
  • (0,0)→(0,1)→(1,1)→(2,1)→(2,2)(0, 0) \to (0, 1) \to (1, 1) \to (2, 1) \to (2, 2)
  • (0,0)→(0,1)→(2,1)→(2,2)(0, 0) \to (0, 1) \to (2, 1) \to (2, 2)
  • (0,0)→(1,0)→(1,1)→(1,2)→(2,2)(0, 0) \to (1, 0) \to (1, 1) \to (1, 2) \to (2, 2)
  • (0,0)→(1,0)→(1,1)→(2,1)→(2,2)(0, 0) \to (1, 0) \to (1, 1) \to (2, 1) \to (2, 2)
  • (0,0)→(1,0)→(1,2)→(2,2)(0, 0) \to (1, 0) \to (1, 2) \to (2, 2)

因此,使所有格子上都恰好有 22 个积木的方法总数为 66。

样例解释 3

注意要输出对 109+710^9+7 取模后的结果。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页