当前位置: 代码迷 >> 综合 >> 『期望DP』POJ2096:Collecting Bugs
  详细解决方案

『期望DP』POJ2096:Collecting Bugs

热度:56   发布时间:2023-12-17 11:07:30.0

题目描述

题意:s个系统n种bug,每天找出一个bug,种类的概率是1/n,系统的概率是1/s。问:每个系统至少找出一个bug;每种类的bug都被找出。的期望天数(0<n, s<=1000)、

题解

这道题目一共有两个维度,bug个系统,这了对应了两个状态。

我们设 f [ i ] [ j ] f[i][j] f[i][j]为i个bug,s个系统,还需要期望的步数。我们要采用逆推。(逆推的原因就在于状态0也在考虑范围内,往前访问会造成下标越界)。

一共分为如下情况:

  • bug不出现,系统出现。对应了 f [ i ] [ j + 1 ] , p = i × ( s ? j ) s × n f[i][j+1],p=\frac{i\times (s-j)}{s\times n} f[i][j+1],p=s×ni×(s?j)?
  • bug出现,系统不出现。对应了 f [ i + 1 ] [ j ] , p = ( n ? i ) × j s × n f[i+1][j],p=\frac{(n-i)\times j}{s\times n} f[i+1][j],p=s×n