[清华集训2016] 组合数问题 题解


题意:

对于 ∀ 0 ≤ i ≤ n , 0 ≤ j ≤ min ⁡ ( i , m ) \forall 0\leq i\leq n, 0\leq j\leq\min(i,m) ∀0in,0jmin(i,m) 有多少满足 ( i j ) = 0 m o d    k \dbinom{i}{j}=0 \mod k (ji)=0modk ( n , m ≤ 1 0 18 n,m\leq 10^{18} n,m1018, k ≤ 100 k\leq100 k100 k k k 为素数)。

前置

容斥原理

Lucas 定理


思路

( i j ) \dbinom{i}{j} (ji) = ( ⌊ i k ⌋ ⌊ j k ⌋ ) . ( i m o d    k j m o d    k ) ( m o d k ) \dbinom{\left\lfloor\dfrac{i}{k}\right\rfloor }{\left\lfloor\dfrac{j}{k}\right\rfloor }.\dbinom{i \mod k }{j \mod k }\pmod k (kjki).(jmodkimodk)(modk)

对于 ( ⌊ i k ⌋ ⌊ j k ⌋ ) \dbinom{\left\lfloor\dfrac{i}{k}\right\rfloor }{\left\lfloor\dfrac{j}{k}\right\rfloor } (kjki) 可以继续做这样的操作,发现这个类似于拆分成 k k k 进制数。

于是设 i = ( a 1 a 2 . . . a n ) k i = (a_1a_2...a_n)_k i=(a1a2...an)k j = ( b 1 b 2 . . . b n ) k j = (b_1b_2...b_n)_k j=(b1b2...bn)k

于是最后转化为:

( i j ) = ( a 1 b 1 ) . ( a 2 b 2 ) … . ( a n − 1 b n − 1 ) . ( a n b n ) ( m o d k ) \dbinom{i}{j}=\dbinom{a_1}{b_1}.\dbinom{a_2}{b_2}….\dbinom{a_{n-1}}{b_{n-1}}.\dbinom{a_{n}}{b_{n}}\pmod k (ji)=(b1a1).(b2a2).(bn1an1).(bnan)(modk)

考虑到 k k k 为素数,若 ∃ ( a p b p ) = 0 ( m o d k ) \exists \dbinom{a_p}{b_p}=0 \pmod k (bpap)=0(modk) 即可满足条件,但是考虑到如果有多个 k k k 满足条件处理起来麻烦于是很自然地想到容斥原理。


小引理

$\dbinom{i}{j} = 0 \pmod k $ ( k k k 为素数且 i , j < k i,j<k i,j<k)

显然只有 i < j i<j i<j 时满足。:)(后面补)


继续考虑:容斥原理,设总个数为 A A A,不满足条件方案数为 B B B,答案即为 A − B A-B AB. 想到求 A A A 是很简单的(这里不再阐述),问题转为求 B B B

但不满足时,一定 ∀ ( a p b p ) ≠ 0 ( m o d k ) \forall \dbinom{a_p}{b_p} \ne 0 \pmod k (bpap)=0(modk) 即为 a p ≥ b p a_p \ge b_p apbp

最后问题转化为:求 ∀ 0 ≤ i ≤ n , 0 ≤ j ≤ min ⁡ ( i , m ) \forall 0\leq i\leq n, 0\leq j\leq\min(i,m) ∀0in,0jmin(i,m)

i = ( a 1 a 2 . . . a n ) k i = (a_1a_2...a_n)_k i=(a1a2...an)k j = ( b 1 b 2 . . . b n ) k j = (b_1b_2...b_n)_k j=(b1b2...bn)k,有多少满足:

∀ a p ≥ b p \forall a_p \ge b_p apbp

问题转化为数位DP。

总结

由于是开夜车赶出来的,所以可能有些没有讲到位,后面继续完善!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值