【BZOJ4591】 SHOI2015 超能粒子炮·改

【BZOJ4591】 SHOI2015 超能粒子炮·改

题意: Σkj=0C(n,j) Mod 2333 (n,k1018) 105 组多测。

从来没有写过Lucas定理,全都忘光了……刚好趁这个机会记录一下。

Lucas定理: C(n,m)C(n/p,m/p)C(n%p,m%p) (mod p)

推导过程: p=2333,sum[i][j]=Σjk=0C(i,j)

ans(n,k)=Σkj=0C(n,j)

=C(n,0)+C(n,1)+C(n,2)+...+C(n,k)

=C(n/p,0/p)C(n%p,0%p)+C(n/p,1/p)C(n%p,1%p)+...+C(n/p,k/p)C(n%p,k%p)

=C(n/p,0)sum[n%p][p1]+C(n/p,1)sum[n%p][p1]+...+C(n/p,k/p1)sum[n%p][p1]+C(n/p,k/p)sum[n%p][k%p]

=sum[n%p][p1]Σk/p1j=0C(n/p,j)+C(n/p,k/p)sum[n%p][k%p]

=sum[n%p][p1]ans(n/p,k/p1)+C(n/p,k/p)sum[n%p][k%p]

预处理 C(0,0)C(p1,p1) sum[0p1][0p1] ans(n/p,k/p1) 递归求解, C(n/p,k/p) 用Lucas定理递归求出。

时间复杂度……不太会算,不过显然小于 O(log2pn)

以上。大家都会就我不会好虚啊。
还有7天JSOI……加油吧。

logpn+logpnp+logpnp2+... 有谁会算的话劳请教一下本蒟蒻……谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值