题目链接:http://lx.lanqiao.cn/problem.page?gpid=T43
解题方案:
因为n的范围巨大,所以直接用高精度暴力肯定会t。所以还是看看q老师在贴吧的传道授业解惑吧。
1.首先有母函数
,
2.两边对x求导后再同乘x,得
3.再重复上述操作,得
这样就可以发现可以通过不断重复上述操作,从而在等式右边引出
,这时候只要在等式左边将x赋值为1,即可计算出
然后C(n,m)%p可以直接用Lucas定理配合高精度算出来。
现在只需要模拟计算出最终的等式的左边即可。
由上述第2步到第3步的时候,可以发现每次求导再乘x,等式左边会出现同样的形式的项
。于是我们只需要确定这个项的系数即可。记i次操作后(即等式右边
的幂为i时)这个项的系数为dp[i][j],则有dp[0][0]=1,由上述第3步的式子可知,当等式右边
的幂为i时,等式左边的项
中j最大取到i,即当j>i时总有dp[i][j]=0 。
接下来就可以按照q老师的思路得到递推,从而解决本题。