[ARC124E]Pass to Next

博客介绍了如何使用动态规划解决一道涉及概率论的传球问题。通过分析传球方案,转化为求解选球方案数,并利用DP进行状态转移计算。博主详细解释了四种转移情况,并提供了源码实现,整体时间复杂度为O(n)。
摘要由CSDN通过智能技术生成

Pass to Next

题解

做过一遍的题再做一遍有不会了。

首先,我们发现,如果每个人都至少传了一个球,那么我们得到的最终的序列就会与去掉它们都串的球的最小值后的序列相同。
所以我们的答案可以用所有方案 − - 至少传一个球的方案得出,显然,总共有 ∏ ( a i + 1 ) − ∏ a i \prod(a_{i}+1)-\prod a_{i} (ai+1)ai种方案,但我们要求的答案是 ∑ ∏ x i \sum \prod x_{i} xi,这东西要怎么求呢?
考虑将这个乘积的式子用组合意义的方法转换一下, ∏ x i \prod x_{i} xi显然就是就是让每个人从自己的球中选出一个的方案数,所以我们需要求出所有传球方案的选球方案数。

上面的问题显然可以考虑用 d p dp dp求出,我们定义 d p i , 0 / 1 dp_{i,0/1} dpi,0/1,考虑第 i i i个人,第 i i i个人在前一个人/他自己的球中选择球的方案数。
显然我们的转移应该是有两个部分内的,一个是他往后传球的部分,他选自己的球的部分。
如果他要在前面一个人的球中选球,那就应该在从 d p i − 1 − > d p i dp_{i-1}->dp_{i} dpi1>dpi时处理好他的方案。
如果他要在自己的球中选球,那就应该在从 d p i − > d p i + 1 dp_{i}->dp_{i+1} dpi>dpi+1时处理好他的方案。
因为这两中选球的不同涉及到他或者他前面的人的传球方案。
转移应该还是比较好想的,主要就是枚举一下 d p i dp_{i} dpi d p i + 1 dp_{i+1} dpi+1 0 / 1 0/1 0/1状态,总共四种转移。
下面以没有现在的方案为例,

  • d p i , 0 − > d p i + 1 , 0 dp_{i,0}->dp_{i+1,0} dpi,0>dpi+1,0,显然我们此时需要考虑两个要素, i i i在自己这里选的方案与 i i i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值