[PKUWC2018]Minimax 题解

P5298 [PKUWC2018]Minimax

2021.10.8 2021.10.8 2021.10.8 重新自己写出这题。

其实不要想太复杂就好了,别忘了看题面。

先给一个提示吧,为什么这题的 D p Dp Dp 不用融斥掉中间的部分,题目已经说出来了:没有重复权值的叶子。

首先考虑对于每一个节点的值最多只有 n 个,所以肯定需要离散化。
之后考虑实际上每一个节点的值都是从其子树的叶子节点中转移过来的。

所以考虑树形 Dp

f [ i ] [ j ] f[i][j] f[i][j] 表示在树上点 i i i 其值为 j j j 的概率。

当然是离散化之后的值。

我们考虑转移,根据题意是取 min ⁡ , max ⁡ \min, \max min,max 来转移的,所以我们考虑左右两个儿子的大小关系。具体来说就是如果让左边的儿子产生了贡献,右边的儿子的值就一定比左边儿子小 ( 如果是取 min ⁡ \min min 的话 )。

就可以写出方程

这里设左边的儿子为 l 右边的儿子为 r

f [ i ] [ j ] = f [ l ] [ j ] × ( p i × ∑ k = 1 j − 1 f [ r ] [ k ] + ( 1 − p i ) × ∑ k = j m f [ r ] [ k ] ) + f [ r ] [ j ] × ( p i × ∑ k = 1 j − 1 f [ l ] [ k ] + ( 1 − p i ) × ∑ k = j m f [ l ] [ k ] ) \begin{aligned} f[i][j] &= f[l][j] \times (p_i \times \sum_{k = 1} ^ {j - 1} f[r][k] + (1 - p_i) \times \sum_{k = j} ^ m f[r][k])\\ &+ f[r][j] \times (p_i \times \sum_{k = 1} ^ {j - 1} f[l][k] + (1 - p_i) \times \sum_{k = j} ^ m f[l][k]) \end{aligned} f[i][j]=f[l][j]×(pi×k=1j1f[r][k]+(1pi)×

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值