求组合数的多种方法
递推法
C[a][b] = C[a-1][b-1]+C[a-1][b];
很好理解,从一堆苹果中拿出一个苹果,那么从这a个苹果中取出b个苹果可根据有无这个苹果分成两种情况,得到递推式。
模板题:https://www.acwing.com/problem/content/887/
代码:
1 |
|
公式法
利用组合数公式,求阶乘,再利用快速幂和费马定理求相应的乘法逆元,相乘求得。
模板题:https://www.acwing.com/problem/content/888/
1 |
|
卢卡斯定理
当a,b过大时,利用卢卡斯定理求解。
卢卡斯定理
模板题:https://www.acwing.com/problem/content/889/
代码:
1 |
|
高精度
上面几种方法都求的是对一个大素数取模的值。
若要求准确的值则需要用到高精度以及质因数分解。
模板题:https://www.acwing.com/problem/content/submission/890/
代码:
1 |
|
求组合数的多种方法
http://jty-123.github.io/2022/03/05/求组合数多种方法/