#A2026M. 【KRUSKAL2026】Iterated Fixed Points

    ID: 223 Type: Default 6000ms 512MiB Tried: 41 Accepted: 3 Difficulty: 9 Uploaded By: Tags>组合数学生成函数数论KRUSKAL2026组合计数函数图

【KRUSKAL2026】Iterated Fixed Points

题目描述

给定三个整数 n,k,pn,k,p

考虑所有函数

f:{1,2,,n}{1,2,,n}.f:\{1,2,\ldots,n\}\to\{1,2,\ldots,n\}.

fkf^k 表示函数 ffkk 次迭代。若 x{1,2,,n}x\in\{1,2,\ldots,n\} 满足

fk(x)=x,f^k(x)=x,

则称 xxff 的一个 kk 阶迭代不动点

求恰好有 ppkk 阶迭代不动点的函数 ff 的数量。答案对 109+710^9+7 取模。

输入格式

本题有多组测试数据。

第一行包含一个整数 TT (1T104)(1\le T\le 10^4),表示测试数据组数。

接下来 TT 行,每行包含三个整数 n,k,pn,k,p (1n,k106,0pn)(1\le n,k\le 10^6,0\le p\le n)

保证所有测试用例的 nn 之和不超过 10610^6

输出格式

对于每组测试数据,输出一行一个整数,表示答案对 109+710^9+7 取模后的结果。

样例

7
3 2 2
2 1 0
3 1 0
3 2 0
3 3 3
4 2 4
4 1 2
12
1
8
2
3
10
54