组合数模板

1. 1000以内的较多组合数求解;利用C(n,m) = C(n-1,m) + C(n-1,m-1)递推求解;

const int N = 1005;
ll f[N][N];
void init(int n)
{
    f[0][0] = 1;
    for(int i = 1;i <= n;i++){
        f[i][0] = 1;
        for(int j = 1;j <= i;j++)
            f[i][j] = f[i-1][j] + f[i-1][j-1];
    }
}

 2.组合数取模 Lucas定理;对于n,m较大,且p为素数,(p < 1e4)

详见:hdu 3944

原文地址:https://www.cnblogs.com/hxer/p/5229483.html