题目大意
给定
N,M
,求出
∑i=1M⎡⎣∑j=1i(Nj)⎤⎦3mod2000003
数据范围
1≤N≤M≤1012
题解
首先,对于
i>N
的情况,显然他们的和就等于
(M−N)(2N−1)3
,那么接下来就考虑怎么求
∑i=0N⎡⎣∑j=1i(Nj)⎤⎦3=∑i=0N⎡⎣∑j=0i(Nj)−1⎤⎦3=∑i=0N⎡⎣∑j=0i(Nj)⎤⎦3−3⎡⎣∑j=0i(Nj)⎤⎦2+3⎡⎣∑j=0i(Nj)⎤⎦−1
记
Ai=∑ij=0(Nj)
S1=∑Ni=0Ai
S2=∑Ni=0A2i
S3=∑Ni=0A3i
只需要把这三个东西求出来就好了。
另外设 P1=A0AN−1+A1AN−2+⋯+AN−1A0 ,先考虑怎么把 P1 求出来。
P1=A0An−1+⋯+An−1A0=[(n0)]×[(n1)+⋯+(nn)]+[(n0)+(n1)]×[(n2)+⋯+(nn)] +⋯+[(n1)+⋯+(nn−1)]×[(nn)]=∑j<k(nj)(nk)(k−j)=∑r=1nr∑k−j=r(nj)(nk){相当于求[xr]((1+1x)n(1+x)n)}=∑r=1nr(2nn+r)=∑r=1nr(2nn−r)=n∑r=1n(2nn−r)−∑r=1n(n−r)(2nn−r)=n×[22n−(2nn)]2−2n×[22n−1−2(2n−1n−1)]2=n(2nn)2
求出 P1 后问题就简单很多了,我们逐个来求 S1,S2,S3 。
S1S2S3=∑i=0nAi=(A0+An−1)+(A2+An−2)+⋯+(An−1+A0)2+An=n2n−1+2n=(n+2)2n−1=∑i=0nA2i=A0(2n−An−1)+⋯+An−1(2n−A0)+A2n=2n(A0+⋯+An)−(A0An−1+⋯+An−1A0)=2nS1−P1=∑i=0nA3i=A30+A3n−1+A31+A3n−2+⋯+A3n−1+A302+A3n=(A0+An−1)(A20−A0An−1+A2n−1)+⋯2+A3n=2n(A20+A21+⋯+A2n)−2n−1P1=2nS2−P1
然后这题求完这些东西后就做完啦。求组合数时用lucas即可。