BZOJ4944 泳池 解题报告
题目描述 有一个 \(n\) 行无穷列的海域,每个格子有 \(q\) 的概率安全, \(1-q\) 的概率不安全。从中框出一个面积最大的矩形,满足以下两个条件: (1)矩形内的格子均安全; (2)矩形必须紧靠海域的最左端(即包含第一列的格子)。 问最大面积为 \(k\) 的概率是多少。这里在模998244353意义下计算,给出 \(q\) 的分数表示形式 \(q=x/y\) 。 数据规模: \(1 \le n \le 10^9, 1 \le k \le 5 \times 10^4\) 。 简要题解 该问题等价于不超过 \(k\) 的概率减去不超过 \(k-1\) 的概率。 设 \(dp[i][j]\) 表示海域有 \(i\) 行,且第1列到第 \(j\) 列全安全的条件下,选取的最大面积不超过 \(k\) 的概率。我们要求的即为 \(dp[n][0]\) 。 初始条件和边界条件如下: \(dp[i][j]=0,i \times j>k,dp[0][j]=1\) 考虑 \(dp[i][j]\) 从谁转移。有两种情况: 情况一:第 \(j+1\) 列全安全; 情况二:第 \(j+1\) 列存在不安全的格子,则可以枚举第 \(j+1\) 列最靠上的不安全位置 \(t\) ,那么当且仅当上面 \(t-1\) 行面积不超过 \(k\) (概率 \(dp[t - 1][j + 1]{q^{t