$Description$
有$n$课树并排排列,每棵树高$h$。每次从剩余的树中选最左边的或最右边的(概率相等为$0.5$),砍掉一棵树,树倒向左边的概率为$p$,倒向右边的概率为$1-p$。如果树和相邻树的距离小于$h$,树倒时会把相邻的树撞倒,倒的方向和撞到它的树一致。问,砍完所有树,树干覆盖的草地长度的期望值。
$Solution:$
容易发现,砍树是从两端开始砍的,因此两端会影响中间,而中间则不会影响到两端的树,因为砍到中间的时候,两端的树都已经砍过了.所以做$dp$的时候,例如正在处理区间$i$到$j$,我们不需要关注区间内的树是向哪边倒的,因为中间的树不会影响两端的,我们需要关注的是$i-1$和$j+1$位的地方的树,因为只有这些地方会对中间的树有影响,所以我们用$dp[i][j][0/1][0/1]$来表式$i-1$和$j+1$这两棵树的状态时,$i$到$j$之间的答案。若状态若为$0$,则表示向左侧倒,若为$1$,则表示向右侧倒。
接下来分类讨论:
$1.$第$i$颗树向左倒,不会影响别的树
$2.$第$j$棵树向右倒,不会影响别的树
$3.$第$i$棵树向右倒,会影响到第$i$棵树右边的树
$(1)$第$i$棵树能把$(i+1)$~$j$之间的所有树都压倒
$(2)$第$i$棵树不能把$(i+1)$~$j$之间的所有树都压倒
$4.$第$j$棵树向左倒,会影响到前面的树
$(1)$第$j$棵树能把$i$~$(j-1)$之间的所有树都压倒
$(2)$第$j$棵树不能把$i$~$(j-1)$之间的所有树都压倒
采用记搜实现
$Code$
1 |
|