#P10154. 「FAOI-R3」移民计划 (C)

「FAOI-R3」移民计划 (C)

题目背景

提示:题目描述最后附有一份简洁题意。

题外话:CCF 的 F 是 Federation,不是 Foundation。


2035203510102424 日,为了响应国家号召,促进区域 OI 水平均衡发展,时任 GZCF(Guizhou Computer Federation,贵州省计算机协会)主任 strcmp(下称「小 W」) 和时任 CQCF(Chongqing Computer Federation,重庆市计算机协会)主任 CQYC_ZJYjoe(下称「小 Z」) 达成秘密协议:从重庆市抽调一批 OIers 移民到贵州省,路费等由小 Z 承担,但小 W 需要安排好 TA 们的住所。

题目描述

根据小 Z 的要求,小 W 一共要盖 nn 座楼房。为了更符合重庆人的品味(?),这些楼房需要「错落有致」:具体来说,第 ii 座楼房的层高应为 ii 米,且楼高 hi=si×ih_i=s_i \times i单调不降(即 hihi1h_i \ge h_{i-1})。当然,每座楼房的楼层数 sis_i 应为正整数

与此同时,小 W 已经找到了一座层高为 11,楼层数 s1=as_1=a 的烂尾楼(h1=ah_1=a),并决定将它作为第 11 座楼房。

为了避免小 Z 反悔,小 W 决定尽快完工,因此他这么盖楼:

  • 在所有使得 h2=2×s2h1h_2 =2 \times s_2\ge h_1s2s_2 中,取最小值作为 s2s_2,即 s2=h12s_2=\lceil\dfrac{h_1}{2}\rceil
  • 在所有使得 h3=3×s3h2h_3 =3 \times s_3\ge h_2s3s_3 中,取最小值作为 s3s_3,即 s3=h23s_3=\lceil\dfrac{h_2}{3}\rceil
  • 在所有使得 h4=4×s4h3h_4 =4 \times s_4\ge h_3s4s_4 中,取最小值作为 s4s_4,即 s4=h34s_4=\lceil\dfrac{h_3}{4}\rceil
  • ……
  • 在所有使得 hi=i×sihi1h_i =i \times s_i\ge h_{i-1}sis_i 中,取最小值作为 sis_i,即 si=hi1is_i=\lceil\dfrac{h_{i-1}}{i}\rceil
  • ……
  • 在所有使得 hn=n×snhn1h_n =n \times s_n\ge h_{n-1}sns_n 中,取最小值作为 sns_n,即 sn=hn1ns_n=\lceil\dfrac{h_{n-1}}{n}\rceil

当然,小 W 最关注的并不是这个,而是另外一件事情——他前一天成功忽悠了 CCF 主席,双方达成协议:CCF 补贴给小 W h1×h2××hnh_1\times h_2\times \ldots\times h_n 元钱。

他想知道:此时 CCF 会补贴给他多少元钱?答案对 109+710^9+7 取模。


给定两个正整数 n,an,a

现有两个正整数数列 {hn},{sn}\{h_n\},\{s_n\} 和一个正整数 WW,满足:

$$\begin{cases} s_1=a, \\ s_i=\lceil \dfrac{h_{i-1}}{i} \rceil, \\ h_i=i \times s_i,\\ W=h_1\times h_2\times \ldots\times h_n. \end{cases} $$

试计算 WW 的值。答案对 109+710^9+7 取模。

输入格式

本题有多组数据。

第一行,一个正整数 TT,表示数据组数。

下面 TT 行,每行两个整数 n,an,a

输出格式

TT 行,每行一个整数,对应一组数据的答案。

7
1 1
2 4
3 9
10 6
23 44
108 301
9181918 918918
1
16
1080
721510288
57314155
568048964
118153594

提示

样例解释:

  • 对于第 11 组数据,ss 数列为 {1}\{1\}hh 数列为 {1}\{1\},故答案为 11
  • 对于第 22 组数据,ss 数列为 {4,2}\{4,2\}hh 数列为 {4,4}\{4,4\},故答案为 1616
  • 对于第 33 组数据,ss 数列为 {9,5,4}\{9,5,4\}hh 数列为 {9,10,12}\{9,10,12\},故答案为 10801080
  • 对于第 44 组数据,取模前的答案为 1672151040016721510400

测试点编号 nn \le aa \le 分值
11 100100 10001000 4040
22 10710^7 3030
33 10610^6

对于 100%100\% 的数据,1T1051 \le T \le 10^51n1071 \le n \le 10^71a1061 \le a \le 10^6