闲扯
矩阵乘法练习题。
题面
Solution
问题是求 $\sum_{i=0}^{\infty}\binom{nk}{ik+r}$ 。
可以发现 $ik+r\equiv r\ (mod\ k)$ ,所以问题等价于求从 $nk$ 个物品中选择 $m$ 个物品的方案数,其中 $m\equiv r\ (mod\ k)$ 。
我们设 $dp_{i,j}$ 表示考虑前 $i$ 个物品, 其中选择的物品个数模 $k$ 为 $j$ 时的方案数,其中 $dp_{0,0}=1$ 。
转移方程为 $dp_{i,j}=dp_{i-1,j}+dp_{i-1,j-1}$ ,其中 $j-1$ 对 $k$ 取模。
因为 $nk\leq 5\cdot 10^{10}$ ,而且该式子为线性递推,所以直接上矩阵快速幂即可。
Code
1 |
|