#P4463. [集训队互测 2012] calc

    ID: 5188 远端评测题 3000ms 500MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>动态规划 DP数学2012集训队互测生成函数

[集训队互测 2012] calc

题目描述

一个序列 a1,a2,…,ana_1,a_2,\dots,a_n 是合法的,当且仅当:

  • a1,a2,…,ana_1,a_2,\dots,a_n 都是 [1,k][1,k] 中的整数。
  • a1,a2,…,ana_1,a_2,\dots,a_n 互不相等。

一个序列的值定义为它里面所有数的乘积,即 a1×a2×⋯×ana_1\times a_2\times\dots\times a_n。

求所有不同合法序列的值的和对 pp 取模后的结果。两个序列不同当且仅当他们任意一位不同。

输入格式

一行三个正整数 k,n,pk, n, p。意义为上面所说的。

输出格式

一行结果。

9 7 10007
3611

提示

【数据范围】

对于 5%5\% 的数据,k≤10k \le 10,n≤10n \le 10。

对于 20%20\% 的数据,k≤1000k \le 1000,n≤20n \le 20。

对于 50%50\% 的数据,k≤109k \le 10^9,n≤20n \le 20。

对于 100%100\% 的数据,k≤109k \le 10 ^ 9,n≤500n \le 500,p≤109p \le 10 ^ 9,保证 pp 为素数,保证 n+1<k<pn + 1 < k < p。

by WJMZBMR


iostream\mathsf i \color{red}\mathsf{ostream} 觉得这题数据太弱了,于是他造了个加强版