loj#P2143. 「SHOI2017」组合数问题
「SHOI2017」组合数问题
题目描述
组合数 表示的是从 个互不相同的物品中选出 个物品的方案数。举个例子, 从 三个物品中选择两个物品可以有 ,, 这三种选择方法。根据组合数的定义,我们可以给出计算组合数 的一般公式:
其中 。(特别地,当 时,;当 时,。)
小葱在 NOIP 的时候学习了 和 的倍数关系,现在他想更进一步,研究更多关于组合数的性质。小葱发现, 是否是 的倍数,取决于 是否等于 ,这个神奇的性质引发了小葱对 运算(取余数运算)的兴趣。现在小葱选择了是四个整数 ,他希望知道
$$\left( \sum_{i = 0}^\infty \mathrm{C}_{nk}^{ik + r} \right) \bmod p, $$即
$$\left( \mathrm{C}_{nk}^{r} + \mathrm{C}_{nk}^{k + r} + \mathrm{C}_{nk}^{2k + r} + \cdots + \mathrm{C}_{nk}^{(n - 1)k + r} + \mathrm{C}_{nk}^{nk + r} + \cdots \right) \bmod p $$的值。
输入格式
第一行有四个整数 ,所有整数含义见问题描述。
输出格式
一行一个整数代表答案。
2 10007 2 0
8
20 10007 20 0
176
数据范围与提示
对于 的测试点,, 是质数;
对于另外 的测试点,;
对于另外 的测试点,;
对于另外 的测试点,;
对于另外 的测试点,, 是质数;
对于另外 的测试点,, 是质数;
对于另外 的测试点,, 是质数;
对于 的测试点,$1 \leq n \leq 10^9, 0 \leq r < k \leq 50, 2 \leq p \leq 2^{30} - 1$。