现在有 n 个烧杯,t 毫升物质β,第 i 个烧杯中现在有 li 毫升物质α,若研制 成功将得到 pi 毫升的新能源,而科研人员可以在烧杯中加入整数毫升的物质β。研制 成功的概率为(物质β的量) / (物质α的量 + 物质β的量)。合理分配物质β使得研制 成功的新能源的量期望值最大,一个烧杯中的物质β不能超过物质α的量。现在烧杯中 物质α的量将会发生 q 次变动,求每次变动之后能获得的新能源的量的最大期望值。 输入说明: 第一行 三个正整数: n, t, q (n 个烧杯,t 毫升物质β,q 次变动) 第二行 n 个正整数: pi (pi 毫升的新能源) 第三行 n 个正整数: li (第 i 个烧杯中现在有 li 毫升物质α) 接下来的 q 行每行两个正整数: tj,rj(tj 为 1 表示增加 1 毫升物质α, 2 表示减少 1 毫升物质α)。
时间: 2024-03-29 13:36:24 浏览: 23
这是一个动态规划问题。我们可以定义 dp[i][j] 表示考虑前 i 个烧杯,现在物质 β 还有 j 毫升时能获得的最大期望新能源量。然后我们可以根据当前烧杯的物质 α 和 β 的数量来转移。
具体来说,对于第 i 个烧杯,我们可以枚举加入的 β 的数量 k,然后计算成功的概率 p = k / (k + li),并计算能获得的期望新能源量为 pk。然后我们可以转移 dp[i][j] = max(dp[i][j], dp[i-1][j-k] + p * pk)。
最后我们只需要在每次变动之后重新计算 dp 数组即可。时间复杂度为 O(n * t^2 * q)。
阅读全文