求组合数有很多方法,需要根据数据范围去选择不同的方法。
C a b = a ( a − 1 ) ( a − 2 ) . . . . ( a − b + 1 ) 1 ∗ 2 ∗ 3 ∗ . . . ∗ b = a ! b ! ( a − b ) ! C_a^b=\frac{a(a-1)(a-2)....(a-b+1)}{1*2*3*...*b}=\frac{a!}{b!(a-b)!} Cab=1∗2∗3∗...∗ba(a−1)(a−2)....(a−b+1)=b!(a−b)!a!
1、取模的组合数计算
给定 n 组询问,每组询问给定两个整数 a,b,请你输出 C b a m o d ( 1 0 9 + 7 ) C_b^a\ mod \ (10^9+7) Cba mod (109+7) 的值。根据a和b以及n的规模,我们将采用不同的方式进行计算。
定义N= 1 0 9 + 7 10^9 + 7 109+7
1. 直接预处理结果
使用递推公式 C a b = C a − 1 b + C a − 1 b − 1 C_a^b=C_{a-1}^b+C_{a-1}^{b-1} Cab=Ca−1b+Ca−1b−