CodefocesE. Crypto Lights题解

题目大意:
对n个有编号的球逐一染色(每个球被选中的概率一样),直到存在编号之差小于等于K的两个球被染色为止。问最终被染色的球的个数之期望。

解题思路:
很多人拿到这个题会考虑模拟放球的过程,然后来一个 d p dp dp
如果这样想的话,那这题应该是废了。实际上,这题依赖于丰富的解题经验,那就是对 n n n个有编号的球选 p p p个进行染色,使得不存在距离小于K的两个球,合法的方案数是可以 O ( 1 ) O(1) O(1)计算的,公式如下: ( n − ( p − 1 ) ∗ ( k − 1 ) p ) n-(p-1)*(k-1) \choose p (pn(p1)(k1))
如何理解这个公式呢?
觉得这个公式很显然的人会说,在这种限制下的组合和去掉前 ( p − 1 ) ∗ ( k − 1 ) (p-1)*(k-1) (p1)(k1)个球后的组合是一 一对应的。实际上也确实如此,就像分析不定方程的解的个数时候,我们可以改变方程右边的数来适应某些解的限制、
在此公式的基础上,我们有很多种方法来解决这个问题。
擅长式子的人已经开始推导了:
P ( i ) P(i) P(i)为恰在染色完第 i i i个球后出现冲突的概率,那么答案为
∑ i = 1 n i ∗ P ( i ) = ∑ i = 1 n P ( i ) ∑ j = 1 i 1 \sum_{i=1}^{n}{i*P(i)}= \sum_{i=1}^{n}P(i) \sum_{j=1}^{i}1 i=1niP(i)=i=1nP(i)j=1i1
= ∑ j = 1 n ∑ i = j n P ( i ) =\sum_{j=1}^{n} \sum_{i=j}^{n}P(i) =j=1ni=jnP(i)
∑ j = i n P ( j ) \sum_{j=i}^{n}P(j) j=inP(j) f ( i ) f(i) f(i), 显然 f ( i ) f(i) f(i)为染色完 i − 1 i-1 i1个球后仍未出现冲突的概率,(因为染完 n n n个球后是必定出现冲突的)这个可以借助前面提到的公式来解决。
当然,这种解法依赖于我们计算的这个期望。一种更一般的方法是,求出恰在染完第 i i i个球后出冲突方案数。
Q ( i ) Q(i) Q(i)为染完第 i i i个球后不冲突的方案数, P P P同理, 那么
P ( i + 1 ) = Q ( i ) ∗ ( n − i ) − Q ( i + 1 ) P(i+1)=Q(i)*(n-i)-Q(i+1) P(i+1)=Q(i)(ni)Q(i+1).
可能是容斥原理学得比较多的缘故,我能很轻松地想到第二种解法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

组合,我有特殊的计数技巧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值