显然,题目需要我们求出:
k∑i=0Cinmod2333
其中 n≤1018 。直接暴力求显然会炸掉,感觉当前的式子不是很好做,推推式子看看。
首先 2333 是质数,这个时候看到了组合数,应该是可以想到 Lucas 定理的,我们将 Lucas 套上去 (并且令 p 为 2333) ,并且设答案为 f(n,k) :
f(n,k)=k∑i=0Cinmodp=k∑i=0Ci%pn%p⋅Ci/pn/pmodp=p−1∑x=0Cxn%p⋅k∑i=0[i%p=x]Ci/pn/pmodp=C0n/pp−1∑x=0Cxn%p+C1n/pp−1∑x=0Cxn%p⋯Ck/pn/pk%p∑x=0Cxn%pmodp=k/p−1∑i=0Cin/p⋅p−1∑x=0Cxn%p+Ck/pn/pk%p∑x=0Cxn%pmodp=f(n/p,k/p−1)⋅f(n%p,p−1)+Ck/pn/p⋅f(n%p,k%p)modp
于是最终得到了答案,递归处理即可。
0 条评论