MetaCamp 2022 初赛2

老年oi选手啥都不会了,过了两个签到题就摸了。

这一篇题解写的很好:(我现在变成搬运工了)

https://www.cnblogs.com/hzoi-DeepinC/p/16574513.html

 

C题:

当时想到了记忆化搜索,但是期望dp好久不做了,总是考虑要记录一维状态来表示上次付车费的日子,但是维度就太大了,而且在转移前还得考虑A,B是不是付钱了,基本不可做

期望dp也不要慌,设计的状态一定是确定状态!因为dp本质上处理的是决策,那么考虑站在某一个状态上应该怎么做就好了。

本质上考虑的其实是A,B付没付过车费。

所以就设dp[x][t][0/1][0/1]表示第x天,还剩t元,A和B分别有没有交过车费。这样这个状态就是确定的了,站在这个状态上,就知道了所有信息,满足最优子结构。

然后就可以Dp了。

 

总结就是,期望dp和一般的dp没有本质区别,只不过转移的时候,选择了一个决策,但是转移到的位置是要乘一个系数(概率)来转移的。

同时,转移的式子要从全概率公式、条件概率、期望的性质多方面考虑,都要满足,这里就是和一般的最优化dp不一样的地方了。

单从方程的形式上来讲,和一般的最优化dp没有两样。

 

D题:

纯粹的概率问题。

当时考虑过分别考虑两两配对的贡献,但是最后卡在了贡献计算上。

正解思路就是考虑两两同色配对的贡献,

首先①最终这两个球能配对的概率是(1/(k-1))

其次②这两个球配对时候贡献的期望是(1+距离)/2,(或者其实是:(距离-1)/2+1),就是,中间的每一个球不管最终是怎么配对的,一定是有一半的概率在这两个球配对之前消掉,一半概率在配对之后消掉,所以期望剩下一半。

然后随便用个前缀和就搞定了。

 

E题:

构造题从来就没有会过。

这个题提供了一种新的构造思路。

考虑怎么求所有子段的最大子段和的。简单dp,srr[l][r]=max(srr[l][r-1],srr[l+1][r],sum[l...r])

而srr[l][r],srr[l][r-1],srr[l+1][r]都知道,所以比较一下就是知道这个max取得是不是sum[l...r]

所以要么是sum[l...r]=srr[l][r],要么是sum[l...r]<=srr[l][r]

而sum[l...r]=sum[r]-sum[l-1]

差分约束就好了,跑出来的一组解一定满足所有的不等式,进而满足所有的srr[l][r]的值。

posted @ 2022-08-11 13:02  *Miracle*  阅读(118)  评论(0编辑  收藏  举报