好的,我帮你把这道题整理为标准的题面格式,补充样例解释、数据范围、时空限制:
题目描述
佳佳碰到了一个难题,请你来帮忙解决。
对于不定方程
a1+a2+⋯+ak−1+ak=g(x)
其中 k≥2 且 k∈N∗,x 是正整数,g(x)=xxmod1000(即 xx 除以 1000 的余数),x,k 是给定的数。我们要求的是这个不定方程的正整数解组数。
举例来说,当 k=3,x=2 时,g(2)=22mod1000=4,方程为 a1+a2+a3=4,正整数解为:
(1,1,2), (1,2,1), (2,1,1)
共 3 组。
输入格式
有且只有一行,为用空格隔开的两个正整数,依次为 k,x。
输出格式
有且只有一行,为方程的正整数解组数。
样例
样例输入 1
3 2
样例输出 1
3
样例解释 1
k=3,x=2,
g(x)=22mod1000=4,
方程为 a1+a2+a3=4,正整数解个数为 C4−13−1=C32=3。
数据范围
- 对于 40% 的数据,答案不超过 1016;
- 对于 100% 的数据,1≤k≤100,1≤x<231,k≤g(x)。
时空限制
- 时间:1000 ms
- 内存:524288 KB
提示
- 先计算 g(x)=xxmod1000,可使用快速幂取模;
- 方程 a1+a2+⋯+ak=m 的正整数解个数为组合数 Cm−1k−1;
- m 可能较大(最大为 999),k 最大为 100,组合数结果可能非常大,需要高精度计算。