您的位置:首页 > 其它

dp对组合数的预处理和快速幂取模模板

2016-07-20 16:21 218 查看
dp对组合数的预处理代码部分:自己在草稿本上一个一个的写一下,其实就是杨辉三角;这样运行过后,dp内就是组合数了,比如C(n,m)在m里取n个的取法就是dp[m]


for(int i=0;i<=2000;i++){
dp[i][1]=i%1007;
dp[i][0]=dp[i][i]=1;
}
for(int i=2;i<=2000;i++){
for(int j=1;j<=i;j++){
dp[i][j]=(dp[i-1][j]+dp[i-1][j-1])%1007;
}
}


快速幂取模模板:还是自己一步一步模拟比较好。

long long result(long long a,long long b,long long m)
{
long long d,t;

d=1;
t=a;
while (b>0)
{
if (b%2==1)
d=(d*t)%m;
b/=2;
t=(t*t)%m;
}

return d;
}


②
int mod_exp(int a, int b, int c)        //快速幂取余a^b%c
{
int res, t;
res = 1 % c;
t = a % c;

4000
while (b)
{
if (b & 1)
{
res = res * t % c;
}
t = t * t % c;
b >>= 1;
}
return res;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dp