bzoj4737 數論 DP 組合數問題

2021-08-27 20:56:39 字數 2273 閱讀 4820

description

組合數c(n,m)表示的是從n個物品中選出m個物品的方案數。舉個例子,從(1,2,3)三個物品中選擇兩個物品可以有(

1,2),(1,3),(2,3)這三種選擇方法。根據組合數的定義,我們可以給出計算組合數c(n,m)的一般公式:

c(n,m)=n!/m!*(n?m)! 其中n!=1×2×?×n。(額外的,當n=0時,n!=1)

小蔥想知道如果給定n,m和k,對於所有的0≤i≤n,0≤j≤min(i,m)有多少對(i,j)滿足c(i,j)是k的倍數。

input

第一行有兩個整數t,k,其中t代表該測試點總共有多少組測試資料,k的意義見。 接下來t行每行兩個整數n,m,其中n,m的意義見。

output

t行,每行乙個整數代表所有的0≤i≤n,0≤j≤min(i,m)中有多少對(i,j))滿足c(i,j)是k的倍數

答案對10^9+7取模。

sample input

3 23

23333333 23333333

233333333 233333333

2333333333 2333333333

sample output

hint

1≤n,m≤10^18,1≤t,k≤100,且 k 是乙個質數』

題解

個個都說很顯然我辣雞當然不覺得

考慮lucas定理 cm

n=cm

/pn/

p∗cm

modp

nmodp(

modp

) cnm

=cn/

pm/p

∗c

nmodpm

modp

(modp)

這裡p就等於k了嘛..

其實就相當於把n,m寫成p進製,設b1[u]表示n在p進製下的第u位,b2[u]表示m在p進製下的第u位

如果有至少一位i使得b1[i] < b2[i]

那麼這個數mod p是為0的

於是就可以愉快數字dp了

實現怎麼這麼複雜啊..

#include

#include

#include

#include

#include

#define ll long long

using

namespace

std;

const ll mod=1e9+7;

int t,k;ll n,m,ans;

int s1[1100],s2[1100],ln1,ln2;

void get(ll u,int op)

else

}ll pow_mod(ll a,ll b)

return ret;

}void ad(ll &x,ll y)

ll f[70][2][2][2][2];

ll dp(int p,int op1,int op2,int op3,int op4)//位置 是否卡上界 是否出現第乙個m比n大的數 是否出現第乙個m比n小的數

if(s1[p]1,1,0,op3,0));

for(int j=s1[p]+1;j1,1,0,op3,1));

if(s1[p]1,1,1,op3,1));

else

if(s1[p]==s2[p])ad(ret,dp(p-1,1,1,op3,0));

return f[p][op1][op2][op3][op4]=ret;

}else

//n不限制

if(s1[p]1,1,0,op3,0));

for(int j=s1[p]+1;j1,1,0,op3,1));

return f[p][op1][op2][op3][op4]=ret;}}

else

//m不限制

return f[p][op1][op2][op3][op4]=ret;

}else

//n不限制

return f[p][op1][op2][op3][op4]=ret;}}

}else

}int main()

return

0;}

BZOJ 2142 禮物 組合數學 數論

題目大意 給定n個物品,分給m個人,每個人拿到wi個禮物,問方案數mod pp不一定為質數 首先我們把剩下的禮物也分給乙個人 答案明顯不變 w m n w1 w2 wm 然後就會很方便地得到公式 ans c n,w1 c n w1,w2 c n w1 w2,w3 c n w1 w2 w m 1 wm...

方程(1)(數論 組合數)

description 求關於x1,x2,xn 的方程 x1 x2 xn k 的非負整數解的個數。input 僅一行,包含 個正整數n,k。output 乙個整數,表示方程不同解的個數,這個數可能很大,你只需輸出mod 20080814的結果。分析 這其實是乙個組合數的模型 有n種元素,每種元素可不...

組合數取模 數論

本人水平有限,題解不到為處,請多多諒解 本蒟蒻謝謝大家 題目 time limit 1 sec memory limit 128 mb submit 113 solved 39 submit status web board 給出n,m,p,求c n,m mod p 1 m n 10 6,1 p 1...